Unhandled errors
inet_aton(), InetPton() return codes
This commit is contained in:
		@@ -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:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        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));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user