Skip to content

Commit

Permalink
feat:rename file
Browse files Browse the repository at this point in the history
  • Loading branch information
chenxuan520 committed Oct 12, 2024
1 parent 0e7a217 commit 8a6cada
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 61 deletions.
45 changes: 14 additions & 31 deletions src/cppnet/server/tcp_server.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#include "tcp_server.hpp"
#include "../utils/const.hpp"
#include "io_multiplexing/io_multiplexing_factory.hpp"
#include "utils/threadpoll.hpp"

#include <string.h>
#include <unistd.h>
Expand All @@ -21,20 +20,20 @@ Socket TcpServer::CreateSocket() {
Socket listenfd;
auto rc = listenfd.Init();
if (rc < 0) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + listenfd_.GetSysErr();
return kSysErr;
}

// set reuse addr to avoid time wait delay
rc = listenfd.SetReuseAddr();
if (rc < 0) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + listenfd_.GetSysErr();
return kSysErr;
}

rc = listenfd.Bind(addr_);
if (rc < 0) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + listenfd_.GetSysErr();
return kSysErr;
}

Expand All @@ -43,14 +42,6 @@ Socket TcpServer::CreateSocket() {

void TcpServer::Register(EventCallBack cb) { event_callback_ = cb; }

int TcpServer::Listen(int fd) {
if (::listen(fd, max_connect_queue_) < 0) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
return kSysErr;
}
return kSuccess;
}

int TcpServer::RemoveSoc(const Socket &soc) {
return io_multiplexing_->RemoveSoc(soc);
}
Expand All @@ -64,7 +55,7 @@ void TcpServer::HandleAccept() {

auto new_socket = listenfd_.Accept(addr);
if (new_socket.status() != Socket::kInit) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + new_socket.GetSysErr();
event_callback_(kEventError, *this, new_socket);
return;
}
Expand All @@ -74,7 +65,7 @@ void TcpServer::HandleAccept() {
case kIOMultiplexing: {
auto rc = io_multiplexing_->MonitorSoc(new_socket);
if (rc < 0) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + io_multiplexing_->err_msg();
event_callback_(kEventError, *this, new_socket);
new_socket.Close();
return;
Expand Down Expand Up @@ -152,7 +143,7 @@ int TcpServer::EventLoop() {
Address addr;
auto accept_fd = listenfd_.Accept(addr);
if (accept_fd.status() != Socket::kInit) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + listenfd_.GetSysErr();
event_callback_(kEventError, *this, accept_fd);
return kSysErr;
}
Expand Down Expand Up @@ -205,17 +196,17 @@ int TcpServer::WakeUp() {
Socket soc;
auto rc = soc.Init();
if (soc.status() != Socket::kInit) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + soc.GetSysErr();
return kSysErr;
}
rc = soc.Connect(addr_);
if (rc < 0) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + soc.GetSysErr();
return kSysErr;
}
rc = soc.Close();
if (rc < 0) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + soc.GetSysErr();
return kSysErr;
}
} break;
Expand All @@ -230,26 +221,18 @@ int TcpServer::Init() {
loop_flag_ = true;
listenfd_ = CreateSocket();
if (listenfd_.status() != Socket::kInit) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + listenfd_.GetSysErr();
return kSysErr;
}

auto retval = listenfd_.Listen(max_connect_queue_);
if (retval < 0) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
listenfd_.Close();
return kSysErr;
}

retval = InitMode();
if (retval < 0) {
err_msg_ = "[syserr]:" + std::string(strerror(errno));
err_msg_ = "[syserr]:" + listenfd_.GetSysErr();
listenfd_.Close();
return kSysErr;
}
return kSuccess;

return kSuccess;
return InitMode();
}

int TcpServer::InitMode() {
Expand All @@ -265,14 +248,14 @@ int TcpServer::InitMode() {

auto retval = io_multiplexing_->Init();
if (retval < 0) {
err_msg_ = io_multiplexing_->err_msg();
err_msg_ = "[syserr]:" + io_multiplexing_->err_msg();
listenfd_.Close();
return kSysErr;
}

retval = io_multiplexing_->MonitorSoc(listenfd_);
if (retval < 0) {
err_msg_ = io_multiplexing_->err_msg();
err_msg_ = "[syserr]:" + io_multiplexing_->err_msg();
listenfd_.Close();
return kSysErr;
}
Expand Down
6 changes: 4 additions & 2 deletions src/cppnet/server/tcp_server.hpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#pragma once

#include "../socket/socket.hpp"
#include "../utils/threadpoll.hpp"
#include "../utils/threadpool.hpp"
#include "io_multiplexing/io_multiplexing_base.hpp"
#include <functional>
#include <memory>
Expand Down Expand Up @@ -71,6 +71,9 @@ class TcpServer {
int WakeUp();

public:
/**
* @brief: Set server mode.Need to be called before Init.
*/
inline void set_mode(Mode mode) { mode_ = mode; }
inline void set_max_connect_queue(int max_connect_queue) {
max_connect_queue_ = max_connect_queue;
Expand All @@ -86,7 +89,6 @@ class TcpServer {
protected:
Socket CreateSocket();
int InitMode();
int Listen(int fd);

void HandleAccept();
void HandleRead(int fd);
Expand Down
29 changes: 4 additions & 25 deletions src/cppnet/socket/socket.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,20 +89,7 @@ int Socket::Read(std::string &buf, size_t len, bool complete) const {
}
char *data = new char[len + 1];
memset(data, 0, len + 1);
auto recv_len = 0;

if (complete) {
while (recv_len < len) {
auto rc = ::read(fd_, data + recv_len, len - recv_len);
if (rc <= 0) {
break;
}
recv_len += rc;
}
} else {
recv_len = ::read(fd_, data, len);
}

auto recv_len = Read(data, len, complete);
buf = data;
delete[] data;
return recv_len;
Expand Down Expand Up @@ -134,8 +121,7 @@ int Socket::ReadUdp(std::string &buf, size_t len, Address &addr) const {
int addr_len = sizeof(sockaddr);
char *data = new char[len + 1];
memset(data, 0, len + 1);
auto rc =
::recvfrom(fd_, data, len, 0, addr.GetSockAddr(), (socklen_t *)&addr_len);
auto rc = ReadUdp(data, len, addr);
buf = data;
delete[] data;
return rc;
Expand All @@ -151,10 +137,7 @@ int Socket::ReadUdp(void *buf, size_t len, Address &addr) const {
}

int Socket::Write(const std::string &buf) const {
if (status_ != kInit) {
return -1;
}
return ::write(fd_, buf.c_str(), buf.size());
return Write(buf.c_str(), buf.size());
}

int Socket::Write(const void *buf, size_t len) const {
Expand All @@ -165,11 +148,7 @@ int Socket::Write(const void *buf, size_t len) const {
}

int Socket::WriteUdp(const std::string &buf, Address &addr) const {
if (status_ != kInit) {
return -1;
}
return ::sendto(fd_, buf.c_str(), buf.size(), 0, addr.GetSockAddr(),
sizeof(sockaddr));
return WriteUdp(buf.c_str(), buf.size(), addr);
}

int Socket::WriteUdp(const void *buf, size_t len, Address &addr) const {
Expand Down
7 changes: 6 additions & 1 deletion src/cppnet/socket/socket.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
#include "address.hpp"
#include <sys/socket.h>
#include <unistd.h>

namespace cppnet {

class Socket {
public:
enum Status {
kUninit = 0,
kInit = 1,
kClosed = 3,
kClosed = 2,
};

public:
Expand Down Expand Up @@ -130,6 +131,10 @@ class Socket {
* @brief: get addr from socket
*/
int GetAddr(Address &addr) const;
/**
* @brief: get system error string
*/
static inline std::string GetSysErr() { return strerror(errno); }

public:
inline int fd() const { return fd_; }
Expand Down
15 changes: 15 additions & 0 deletions src/cppnet/ssl/ssl_context.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#pragma once
#ifdef CPPNET_OPENSSL
#include <openssl/ssl.h>

namespace cppnet {

class SSLContext {
public:
private:
SSL_CTX *ssl_ctx_;
};

#endif

} // namespace cppnet
File renamed without changes.
3 changes: 3 additions & 0 deletions src/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ set(CMAKE_CXX_STANDARD 17)
include_directories(../cppnet)
include_directories(../third_party/cpptest)

# include_directories(/opt/homebrew/Cellar/openssl@3/3.3.2/include)
# add_definitions(-DCPPNET_OPENSSL)

# link dir add
# link_directories()

Expand Down
1 change: 1 addition & 0 deletions src/test/server/tcp_server_test.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,7 @@ TEST(TcpServer, MultiThread) {
// write
rc = fd.Write(msg);
MUST_TRUE(rc == msg.size(), strerror(errno));
DEBUG(fd.fd() << " write " << msg);

// close
rc = fd.Close();
Expand Down
2 changes: 1 addition & 1 deletion src/test/utils/threadpoll_test.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "test.h"
#include "utils/threadpoll.hpp"
#include "utils/threadpool.hpp"
#include <atomic>
#include <unistd.h>

Expand Down
2 changes: 1 addition & 1 deletion src/third_party/cpptest
Submodule cpptest updated from dc74c3 to b61c71

0 comments on commit 8a6cada

Please sign in to comment.