mirror of
git://source.winehq.org/git/wine.git
synced 2024-07-25 05:56:24 +00:00
ws2_32/tests: Call GetAdaptersAddresses() in a loop.
This commit is contained in:
parent
e5df70ce6c
commit
3c2e980d8d
|
@ -12236,12 +12236,29 @@ static void test_get_interface_list(void)
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static IP_ADAPTER_ADDRESSES *get_adapters(void)
|
||||||
|
{
|
||||||
|
ULONG err, size = 4096;
|
||||||
|
IP_ADAPTER_ADDRESSES *tmp, *ret;
|
||||||
|
|
||||||
|
if (!(ret = malloc( size ))) return NULL;
|
||||||
|
err = GetAdaptersAddresses( AF_UNSPEC, 0, NULL, ret, &size );
|
||||||
|
while (err == ERROR_BUFFER_OVERFLOW)
|
||||||
|
{
|
||||||
|
if (!(tmp = realloc( ret, size ))) break;
|
||||||
|
ret = tmp;
|
||||||
|
err = GetAdaptersAddresses( AF_UNSPEC, 0, NULL, ret, &size );
|
||||||
|
}
|
||||||
|
if (err == ERROR_SUCCESS) return ret;
|
||||||
|
free( ret );
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static void test_bind(void)
|
static void test_bind(void)
|
||||||
{
|
{
|
||||||
const struct sockaddr_in invalid_addr = {.sin_family = AF_INET, .sin_addr.s_addr = inet_addr("192.0.2.0")};
|
const struct sockaddr_in invalid_addr = {.sin_family = AF_INET, .sin_addr.s_addr = inet_addr("192.0.2.0")};
|
||||||
const struct sockaddr_in bind_addr = {.sin_family = AF_INET, .sin_addr.s_addr = htonl(INADDR_LOOPBACK)};
|
const struct sockaddr_in bind_addr = {.sin_family = AF_INET, .sin_addr.s_addr = htonl(INADDR_LOOPBACK)};
|
||||||
IP_ADAPTER_ADDRESSES *adapters = NULL, *adapter;
|
IP_ADAPTER_ADDRESSES *adapters, *adapter;
|
||||||
ULONG ip_addrs_size = 0;
|
|
||||||
struct sockaddr addr;
|
struct sockaddr addr;
|
||||||
SOCKET s, s2;
|
SOCKET s, s2;
|
||||||
int ret, len;
|
int ret, len;
|
||||||
|
@ -12313,11 +12330,8 @@ static void test_bind(void)
|
||||||
|
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
|
|
||||||
ret = GetAdaptersAddresses(AF_UNSPEC, 0, NULL, adapters, &ip_addrs_size);
|
adapters = get_adapters();
|
||||||
ok(ret == ERROR_BUFFER_OVERFLOW, "got error %u\n", ret);
|
ok(adapters != NULL, "can't get adapters\n");
|
||||||
adapters = malloc(ip_addrs_size);
|
|
||||||
ret = GetAdaptersAddresses(AF_UNSPEC, 0, NULL, adapters, &ip_addrs_size);
|
|
||||||
ok(!ret, "got error %u\n", ret);
|
|
||||||
|
|
||||||
for (adapter = adapters; adapter != NULL; adapter = adapter->Next)
|
for (adapter = adapters; adapter != NULL; adapter = adapter->Next)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue