Unhandled errors

inet_aton(), InetPton() return codes
parent 99fda0ed
...@@ -64,7 +64,11 @@ public: ...@@ -64,7 +64,11 @@ public:
addr_.sin_family = PF_INET; addr_.sin_family = PF_INET;
addr_.sin_port = htons(port); addr_.sin_port = htons(port);
addr_.sin_addr.s_addr = INADDR_ANY; 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); socket_ = ::socket(PF_INET, SOCK_DGRAM, 0);
if (socket_ == INVALID_SOCKET) if (socket_ == INVALID_SOCKET)
......
...@@ -58,7 +58,11 @@ public: ...@@ -58,7 +58,11 @@ public:
sockAddr_.sin_family = AF_INET; sockAddr_.sin_family = AF_INET;
sockAddr_.sin_port = htons(port); 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)); ::memset(sockAddr_.sin_zero, 0x00, sizeof(sockAddr_.sin_zero));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment