자잘한 버그 해결

This commit is contained in:
2025-04-23 01:21:36 +09:00
parent 89cac9c54f
commit cebf59ddd8
6 changed files with 59 additions and 48 deletions

View File

@@ -24,20 +24,20 @@ void setDefaultLogger(spdlog::level::level_enum logLevel, gsl::czstring logFileN
void critical(gsl::czstring msg) {
#ifdef _WIN32
gsl::zstring msgbuf = nullptr;
FormatMessageA(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
WSAGetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
msgbuf,
0,
NULL);
spdlog::critical("[{}] {}", msg, msgbuf);
LocalFree(msgbuf);
LPSTR msgbuf = nullptr;
FormatMessageA(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
WSAGetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPSTR)&msgbuf,
0,
NULL);
spdlog::critical("[{}] {}", msg, msgbuf);
LocalFree(msgbuf);
#elif __linux__
gsl::czstring msgbuf = strerror(errno);
spdlog::critical("[{}] {}", msg, msgbuf);
gsl::czstring msgbuf = strerror(errno);
spdlog::critical("[{}] {}", msg, msgbuf);
#else
#error "이 플랫폼은 지원되지 않습니다."
#endif
@@ -46,20 +46,20 @@ void critical(gsl::czstring msg) {
void error(gsl::czstring msg) {
#ifdef _WIN32
gsl::zstring msgbuf = nullptr;
FormatMessageA(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
WSAGetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
msgbuf,
0,
NULL);
spdlog::critical("[{}] {}", msg, msgbuf);
LocalFree(msgbuf);
LPSTR msgbuf = nullptr;
FormatMessageA(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
WSAGetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPSTR)&msgbuf,
0,
NULL);
spdlog::critical("[{}] {}", msg, msgbuf);
LocalFree(msgbuf);
#elif __linux__
gsl::czstring msgbuf = strerror(errno);
spdlog::critical("[{}] {}", msg, msgbuf);
gsl::czstring msgbuf = strerror(errno);
spdlog::critical("[{}] {}", msg, msgbuf);
#else
#error "이 플랫폼은 지원되지 않습니다."
#endif

View File

@@ -4,6 +4,14 @@
namespace Chattr {
Socket::Socket() {
#ifdef _WIN32
WSADATA wsa;
if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
log::critical("WSAStartup()");
#endif
}
Socket::Socket(int domain, int type, int protocol) {
#ifdef _WIN32
WSADATA wsa;
@@ -68,11 +76,11 @@ void Socket::move(const SOCKET __sock) {
valid_ = true;
};
void Socket::bind(const sockaddr *__addr) {
bind((struct sockaddr *)__addr, sizeof(*__addr));
void Socket::bind(sockaddr *__addr) {
bind((struct sockaddr *)__addr, sizeof(sockaddr));
}
void Socket::bind(const sockaddr *__addr, socklen_t __len) {
void Socket::bind(sockaddr *__addr, socklen_t __len) {
bindAddr.length = __len;
std::memcpy(&bindAddr, __addr, __len);
int retVal = ::bind(sock_, __addr, __len);
@@ -80,19 +88,19 @@ void Socket::bind(const sockaddr *__addr, socklen_t __len) {
log::critical("bind()");
}
void Socket::bind(const sockaddr_in *__addr) {
bind((struct sockaddr *)__addr, sizeof(*__addr));
void Socket::bind(sockaddr_in *__addr) {
bind((struct sockaddr *)__addr, sizeof(sockaddr_in));
}
void Socket::bind(const sockaddr_in *__addr, socklen_t __len) {
void Socket::bind(sockaddr_in *__addr, socklen_t __len) {
bind((struct sockaddr *)__addr, __len);
}
void Socket::bind(const sockaddr_in6 *__addr) {
bind((struct sockaddr *)__addr, sizeof(*__addr));
void Socket::bind(sockaddr_in6 *__addr) {
bind((struct sockaddr *)__addr, sizeof(sockaddr_in6));
}
void Socket::bind(const sockaddr_in6 *__addr, socklen_t __len) {
void Socket::bind(sockaddr_in6 *__addr, socklen_t __len) {
bind((struct sockaddr *)__addr, __len);
}

View File

@@ -5,10 +5,7 @@
namespace Chattr {
void TCPSocket::init(int domain) {
sock_ = ::socket(domain, SOCK_STREAM, 0);
if (sock_ == INVALID_SOCKET)
log::critical("socket()");
init(domain, SOCK_STREAM, 0);
valid_ = true;
}