ws2_32: Simplify IPv4 sprintf.

Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Bruno Jesus 2016-11-30 04:48:27 -02:00 committed by Alexandre Julliard
parent fa172e1ca6
commit e33527b2a7
1 changed files with 12 additions and 9 deletions

View File

@ -4368,13 +4368,14 @@ WS_u_short WINAPI WS_ntohs(WS_u_short netshort)
*/ */
char* WINAPI WS_inet_ntoa(struct WS_in_addr in) 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(); struct per_thread_data *data = get_per_thread_data();
sprintf( data->ntoa_buffer, "%u.%u.%u.%u", sprintf( data->ntoa_buffer, "%u.%u.%u.%u",
(unsigned int)(ntohl( in.WS_s_addr ) >> 24 & 0xff), (long_ip >> 24) & 0xff,
(unsigned int)(ntohl( in.WS_s_addr ) >> 16 & 0xff), (long_ip >> 16) & 0xff,
(unsigned int)(ntohl( in.WS_s_addr ) >> 8 & 0xff), (long_ip >> 8) & 0xff,
(unsigned int)(ntohl( in.WS_s_addr ) & 0xff) ); long_ip & 0xff);
return data->ntoa_buffer; return data->ntoa_buffer;
} }
@ -8289,18 +8290,20 @@ INT WINAPI WSAAddressToStringA( LPSOCKADDR sockaddr, DWORD len,
switch(sockaddr->sa_family) switch(sockaddr->sa_family)
{ {
case WS_AF_INET: 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; if (len < sizeof(SOCKADDR_IN)) return SOCKET_ERROR;
sprintf( buffer, "%u.%u.%u.%u:%u", sprintf( buffer, "%u.%u.%u.%u:%u",
(unsigned int)(ntohl( ((SOCKADDR_IN *)sockaddr)->sin_addr.WS_s_addr ) >> 24 & 0xff), (long_ip >> 24) & 0xff,
(unsigned int)(ntohl( ((SOCKADDR_IN *)sockaddr)->sin_addr.WS_s_addr ) >> 16 & 0xff), (long_ip >> 16) & 0xff,
(unsigned int)(ntohl( ((SOCKADDR_IN *)sockaddr)->sin_addr.WS_s_addr ) >> 8 & 0xff), (long_ip >> 8) & 0xff,
(unsigned int)(ntohl( ((SOCKADDR_IN *)sockaddr)->sin_addr.WS_s_addr ) & 0xff), long_ip & 0xff,
ntohs( ((SOCKADDR_IN *)sockaddr)->sin_port ) ); ntohs( ((SOCKADDR_IN *)sockaddr)->sin_port ) );
p = strchr( buffer, ':' ); p = strchr( buffer, ':' );
if (!((SOCKADDR_IN *)sockaddr)->sin_port) *p = 0; if (!((SOCKADDR_IN *)sockaddr)->sin_port) *p = 0;
break; break;
}
case WS_AF_INET6: case WS_AF_INET6:
{ {
struct WS_sockaddr_in6 *sockaddr6 = (LPSOCKADDR_IN6) sockaddr; struct WS_sockaddr_in6 *sockaddr6 = (LPSOCKADDR_IN6) sockaddr;