From b2b6dc4587616ef3e18ba469ed17158b1099c4ee Mon Sep 17 00:00:00 2001 From: Moon Date: Fri, 3 Dec 2010 19:07:32 +0000 Subject: [PATCH] Fix W32 interface listing, and correctly copy addr in test-nat (patch by LRN) --- src/nat/test_nat.c | 20 +++++++------------- src/util/os_network.c | 4 ++-- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/nat/test_nat.c b/src/nat/test_nat.c index 6f2226929..c71623c2e 100644 --- a/src/nat/test_nat.c +++ b/src/nat/test_nat.c @@ -45,7 +45,7 @@ struct addr_cls { - const struct sockaddr *addr; + struct sockaddr *addr; socklen_t addrlen; }; @@ -76,22 +76,16 @@ process_if (void *cls, { struct addr_cls *data = cls; - if (addr) + if (addr && addrlen > 0) { - data->addr = addr; + if (data->addr) + GNUNET_free (data->addr); + data->addr = memcpy (GNUNET_malloc (addrlen), addr, addrlen); data->addrlen = addrlen; + if (isDefault) + return GNUNET_SYSERR; } - - if (strcmp (name, "eth1") == 0 && addr->sa_family == AF_INET) - return GNUNET_SYSERR; - return GNUNET_OK; - - - if (isDefault && addr) - return GNUNET_SYSERR; - else - return GNUNET_OK; } static void diff --git a/src/util/os_network.c b/src/util/os_network.c index 453eea6f8..498f6ac9c 100644 --- a/src/util/os_network.c +++ b/src/util/os_network.c @@ -153,9 +153,9 @@ GNUNET_OS_network_interfaces_list (GNUNET_OS_NetworkInterfaceProcessor proc, if (GNUNET_OK != proc (proc_cls, szEntry, - pAddrTable->table[dwIfIdx].dwIndex == dwExternalNIC, + pTable->table[dwIfIdx].dwIndex == dwExternalNIC, (const struct sockaddr *) &sa, - 0)) + sizeof (sa))) break; } } -- 2.25.1