mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 12:54:13 +00:00
ws2_32: Make inet_ntop conform to msdn definition.
This commit is contained in:
parent
0cdd0d80ee
commit
4d4819d8c4
2 changed files with 10 additions and 8 deletions
|
@ -4698,16 +4698,18 @@ int WINAPI WSARemoveServiceClass(LPGUID info)
|
||||||
PCSTR WINAPI WS_inet_ntop( INT family, PVOID addr, PSTR buffer, size_t len )
|
PCSTR WINAPI WS_inet_ntop( INT family, PVOID addr, PSTR buffer, size_t len )
|
||||||
{
|
{
|
||||||
#ifdef HAVE_INET_NTOP
|
#ifdef HAVE_INET_NTOP
|
||||||
union generic_unix_sockaddr unix_addr;
|
struct WS_in6_addr *in6;
|
||||||
|
struct WS_in_addr *in;
|
||||||
|
|
||||||
|
TRACE("family %d, addr (%p), buffer (%p), len %d\n", family, addr, buffer, len);
|
||||||
switch (family)
|
switch (family)
|
||||||
{
|
{
|
||||||
case WS_AF_INET:
|
case WS_AF_INET:
|
||||||
ws_sockaddr_ws2u( addr, sizeof(struct WS_sockaddr_in), &unix_addr );
|
in = addr;
|
||||||
return inet_ntop( AF_INET, &unix_addr, buffer, len );
|
return inet_ntop( AF_INET, &in->WS_s_addr, buffer, len );
|
||||||
case WS_AF_INET6:
|
case WS_AF_INET6:
|
||||||
ws_sockaddr_ws2u( addr, sizeof(struct WS_sockaddr_in6), &unix_addr );
|
in6 = addr;
|
||||||
return inet_ntop( AF_INET6, &unix_addr, buffer, len );
|
return inet_ntop( AF_INET6, in6->WS_s6_addr, buffer, len );
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
FIXME( "not supported on this platform\n" );
|
FIXME( "not supported on this platform\n" );
|
||||||
|
|
|
@ -2040,7 +2040,7 @@ static void test_addr_to_print(void)
|
||||||
|
|
||||||
pdst = pInetNtop(AF_INET,(void*)&in.s_addr, dst, sizeof(dst));
|
pdst = pInetNtop(AF_INET,(void*)&in.s_addr, dst, sizeof(dst));
|
||||||
ok(pdst != NULL, "InetNtop failed %s\n", dst);
|
ok(pdst != NULL, "InetNtop failed %s\n", dst);
|
||||||
todo_wine ok(!strcmp(pdst, addr1_Str),"Address %s != %s\n", pdst, addr1_Str);
|
ok(!strcmp(pdst, addr1_Str),"Address %s != %s\n", pdst, addr1_Str);
|
||||||
|
|
||||||
/* Test invalid parm conditions */
|
/* Test invalid parm conditions */
|
||||||
pdst = pInetNtop(1, (void*)&in.s_addr, dst, sizeof(dst));
|
pdst = pInetNtop(1, (void*)&in.s_addr, dst, sizeof(dst));
|
||||||
|
@ -2051,13 +2051,13 @@ static void test_addr_to_print(void)
|
||||||
memcpy(in6.u.Byte, addr2_Num, sizeof(addr2_Num));
|
memcpy(in6.u.Byte, addr2_Num, sizeof(addr2_Num));
|
||||||
pdst = pInetNtop(AF_INET6,(void*)&in6.s6_addr, dst6, sizeof(dst6));
|
pdst = pInetNtop(AF_INET6,(void*)&in6.s6_addr, dst6, sizeof(dst6));
|
||||||
ok(pdst != NULL, "InetNtop failed %s\n", dst6);
|
ok(pdst != NULL, "InetNtop failed %s\n", dst6);
|
||||||
todo_wine ok(!strcmp(pdst, addr2_Str),"Address %s != %s\n", pdst, addr2_Str);
|
ok(!strcmp(pdst, addr2_Str),"Address %s != %s\n", pdst, addr2_Str);
|
||||||
|
|
||||||
/* Test an zero suffixed IPV6 address */
|
/* Test an zero suffixed IPV6 address */
|
||||||
memcpy(in6.s6_addr, addr3_Num, sizeof(addr3_Num));
|
memcpy(in6.s6_addr, addr3_Num, sizeof(addr3_Num));
|
||||||
pdst = pInetNtop(AF_INET6,(void*)&in6.s6_addr, dst6, sizeof(dst6));
|
pdst = pInetNtop(AF_INET6,(void*)&in6.s6_addr, dst6, sizeof(dst6));
|
||||||
ok(pdst != NULL, "InetNtop failed %s\n", dst6);
|
ok(pdst != NULL, "InetNtop failed %s\n", dst6);
|
||||||
todo_wine ok(!strcmp(pdst, addr3_Str),"Address %s != %s\n", pdst, addr3_Str);
|
ok(!strcmp(pdst, addr3_Str),"Address %s != %s\n", pdst, addr3_Str);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_ioctlsocket(void)
|
static void test_ioctlsocket(void)
|
||||||
|
|
Loading…
Reference in a new issue