Unhandled errors

inet_aton(), InetPton() return codes
This commit is contained in:
Маркелов Максим 2021-09-07 09:10:25 +03:00
parent 99fda0ed22
commit 14eecc6e2a
2 changed files with 10 additions and 2 deletions

View File

@ -64,7 +64,11 @@ public:
addr_.sin_family = PF_INET;
addr_.sin_port = htons(port);
addr_.sin_addr.s_addr = INADDR_ANY;
InetPton(PF_INET, TEXT(host.c_str()), &addr_.sin_addr.s_addr);
if (InetPton(PF_INET, TEXT(host.c_str()), &addr_.sin_addr.s_addr) != 1) {
int last_error = ::WSAGetLastError();
::WSACleanup();
throw_winsock_error_("error: Invalid address!", last_error);
}
socket_ = ::socket(PF_INET, SOCK_DGRAM, 0);
if (socket_ == INVALID_SOCKET)

View File

@ -58,7 +58,11 @@ public:
sockAddr_.sin_family = AF_INET;
sockAddr_.sin_port = htons(port);
::inet_aton(host.c_str(), &sockAddr_.sin_addr);
if (::inet_aton(host.c_str(), &sockAddr_.sin_addr) == 0) {
cleanup_();
throw_spdlog_ex("error: Invalid address!");
}
::memset(sockAddr_.sin_zero, 0x00, sizeof(sockAddr_.sin_zero));
}