From: Moon Date: Fri, 3 Dec 2010 19:07:32 +0000 (+0000) Subject: Fix W32 interface listing, and correctly copy addr in test-nat (patch by LRN) X-Git-Tag: initial-import-from-subversion-38251~19552 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b2b6dc4587616ef3e18ba469ed17158b1099c4ee;p=oweals%2Fgnunet.git Fix W32 interface listing, and correctly copy addr in test-nat (patch by LRN) --- 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; } }