@@ -2413,8 +2413,10 @@ void ServerSocket::bind(int port) {
24132413 addr.sin_addr .s_addr = inet_addr (this ->bindSpecificAddress .c_str ());
24142414 }
24152415 else {
2416- addr.sin_addr .s_addr = this ->bindAddress == " " ? INADDR_ANY : inet_addr (this ->bindAddress .c_str ());
2416+ if (inet_pton (AF_INET, this ->bindAddress == " " ? INADDR_ANY : this ->bindAddress .c_str (), &addr.sin_addr .s_addr ) <= 0 )
2417+ perror (" inet_pton:" );
24172418 }
2419+
24182420 addr.sin_port = htons (port);
24192421 addr.sin_zero [0 ] = 0 ;
24202422
@@ -2425,14 +2427,14 @@ void ServerSocket::bind(int port) {
24252427#else
24262428 int opt_result = setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, (char *)&val, sizeof (val));
24272429#endif
2430+ char szBuf[8096 ] = {};
24282431
24292432 int err= ::bind (sock, reinterpret_cast <sockaddr*>(&addr), sizeof (addr));
24302433 if (err < 0 ) {
2431- char szBuf[8096 ]=" " ;
2432- snprintf (szBuf, 8096 ," In [%s::%s] Error binding socket sock = " PLATFORM_SOCKET_FORMAT_TYPE " , address [%s] port = %d err = %d, error = %s opt_result = %d\n " ,__FILE__,__FUNCTION__,sock,this ->bindSpecificAddress .c_str (),port,err,getLastSocketErrorFormattedText ().c_str (),opt_result);
2434+ snprintf (szBuf, sizeof szBuf," In [%s::%s] Error binding socket sock = " PLATFORM_SOCKET_FORMAT_TYPE " , address [%s] port = %d err = %d, error = %s opt_result = %d\n " ,__FILE__,__FUNCTION__,sock,this ->bindSpecificAddress .c_str (),port,err,getLastSocketErrorFormattedText ().c_str (),opt_result);
24332435 if (SystemFlags::getSystemSettingType (SystemFlags::debugNetwork).enabled ) SystemFlags::OutputDebug (SystemFlags::debugNetwork," %s" ,szBuf);
24342436
2435- snprintf (szBuf, 8096 ," Error binding socket sock = " PLATFORM_SOCKET_FORMAT_TYPE " , address [%s] port = %d err = %d, error = %s\n " ,sock,this ->bindSpecificAddress .c_str (),port,err,getLastSocketErrorFormattedText ().c_str ());
2437+ snprintf (szBuf, sizeof szBuf ," Error binding socket sock = " PLATFORM_SOCKET_FORMAT_TYPE " , address [%s] port = %d err = %d, error = %s\n " ,sock,this ->bindSpecificAddress .c_str (),port,err,getLastSocketErrorFormattedText ().c_str ());
24362438 throw megaglest_runtime_error (szBuf);
24372439 }
24382440 portBound = true ;
0 commit comments