From e33527b2a76ac49ed8aacd04fabc6475630124ed Mon Sep 17 00:00:00 2001 From: Bruno Jesus <00cpxxx@gmail.com> Date: Wed, 30 Nov 2016 04:48:27 -0200 Subject: [PATCH] ws2_32: Simplify IPv4 sprintf. Signed-off-by: Bruno Jesus <00cpxxx@gmail.com> Signed-off-by: Alexandre Julliard --- dlls/ws2_32/socket.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 898c1ebe548..8ad30b477f7 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -4368,13 +4368,14 @@ WS_u_short WINAPI WS_ntohs(WS_u_short netshort) */ char* WINAPI WS_inet_ntoa(struct WS_in_addr in) { + unsigned int long_ip = ntohl(in.WS_s_addr); struct per_thread_data *data = get_per_thread_data(); sprintf( data->ntoa_buffer, "%u.%u.%u.%u", - (unsigned int)(ntohl( in.WS_s_addr ) >> 24 & 0xff), - (unsigned int)(ntohl( in.WS_s_addr ) >> 16 & 0xff), - (unsigned int)(ntohl( in.WS_s_addr ) >> 8 & 0xff), - (unsigned int)(ntohl( in.WS_s_addr ) & 0xff) ); + (long_ip >> 24) & 0xff, + (long_ip >> 16) & 0xff, + (long_ip >> 8) & 0xff, + long_ip & 0xff); return data->ntoa_buffer; } @@ -8289,18 +8290,20 @@ INT WINAPI WSAAddressToStringA( LPSOCKADDR sockaddr, DWORD len, switch(sockaddr->sa_family) { case WS_AF_INET: + { + unsigned int long_ip = ntohl(((SOCKADDR_IN *)sockaddr)->sin_addr.WS_s_addr); if (len < sizeof(SOCKADDR_IN)) return SOCKET_ERROR; sprintf( buffer, "%u.%u.%u.%u:%u", - (unsigned int)(ntohl( ((SOCKADDR_IN *)sockaddr)->sin_addr.WS_s_addr ) >> 24 & 0xff), - (unsigned int)(ntohl( ((SOCKADDR_IN *)sockaddr)->sin_addr.WS_s_addr ) >> 16 & 0xff), - (unsigned int)(ntohl( ((SOCKADDR_IN *)sockaddr)->sin_addr.WS_s_addr ) >> 8 & 0xff), - (unsigned int)(ntohl( ((SOCKADDR_IN *)sockaddr)->sin_addr.WS_s_addr ) & 0xff), + (long_ip >> 24) & 0xff, + (long_ip >> 16) & 0xff, + (long_ip >> 8) & 0xff, + long_ip & 0xff, ntohs( ((SOCKADDR_IN *)sockaddr)->sin_port ) ); p = strchr( buffer, ':' ); if (!((SOCKADDR_IN *)sockaddr)->sin_port) *p = 0; break; - + } case WS_AF_INET6: { struct WS_sockaddr_in6 *sockaddr6 = (LPSOCKADDR_IN6) sockaddr;