직렬화 함수 작성 끝

This commit is contained in:
2025-06-09 03:47:48 +09:00
parent 5ba62b5312
commit 50c9bd68fc
47 changed files with 324 additions and 201 deletions

View File

@@ -176,9 +176,12 @@ void IOCP::iocpWatcher_(utils::ThreadPool* IOCPThread) {
std::vector<char> buf(16384); // SSL_read최대 반환 크기
int red_data = 0;
std::lock_guard lock(*GetRecvQueueMutex_(sock));
auto queue_list = GetRecvQueue_(data->socket->sock);
auto queue_list = GetRecvQueue_(sock);
if (data->event == IOCPEVENT::READ) {
if (proto_ == SessionProtocol::TLS || proto_ == SessionProtocol::QUIC) {
if (proto_ == SessionProtocol::TLS ||
proto_ == SessionProtocol::QUIC) { // DEPRECATED. openssl을 사용할 수가
// 없기 때문에 추후 완성 뒤에 기능을
// 붙이든 해야 할 듯 함.
// DEBUG: BIO_write 전 OpenSSL 에러 스택 확인 (혹시 모를 이전 에러)
ERR_print_errors_fp(stderr); // 이미 오류 스택에 뭔가 있는지 확인용
fprintf(stderr, "--- Before BIO_write ---\n");

View File

@@ -41,7 +41,7 @@ Socket::operator SOCKET() {
void Socket::set(const SOCKET __sock, int __domain) {
if (__sock == INVALID_SOCKET) {
spdlog::critical("socket()");
spdlog::error("set failed errno:{} {}", errno, strerror(errno));
std::exit(EXIT_FAILURE);
}

View File

@@ -11,9 +11,14 @@ int TCPSocket::listen(int __n) {
}
void TCPSocket::accept(TCPSocket &newSock, Address &__addr) {
newSock.set(::accept(sock, &__addr.addr, &__addr.length), domain);
SOCKET newsock = INVALID_SOCKET;
newsock = ::accept(sock, &__addr.addr, &__addr.length);
if (newsock == INVALID_SOCKET) {
spdlog::error("accept() errno:{} {}", errno, strerror(errno));
std::exit(EXIT_FAILURE);
}
newSock.set(newsock, domain);
memcpy(&newSock.remoteAddr, &__addr, sizeof(Address));
if (newSock.sock == INVALID_SOCKET) spdlog::error("accept()");
}
int TCPSocket::connect(Address &serveraddr) {