From: Matthias Wachs Date: Thu, 17 Nov 2011 16:39:10 +0000 (+0000) Subject: api change for network interface iterations to support broadcast address and network... X-Git-Tag: initial-import-from-subversion-38251~15886 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f3fdda9eec15076d54f296a7418b1984a8beba66;p=oweals%2Fgnunet.git api change for network interface iterations to support broadcast address and network mask --- diff --git a/src/include/gnunet_os_lib.h b/src/include/gnunet_os_lib.h index 31062bd40..12ec3a54e 100644 --- a/src/include/gnunet_os_lib.h +++ b/src/include/gnunet_os_lib.h @@ -146,13 +146,17 @@ GNUNET_OS_installation_get_path (enum GNUNET_OS_InstallationPathKind dirkind); * @param name name of the interface (can be NULL for unknown) * @param isDefault is this presumably the default interface * @param addr address of this interface (can be NULL for unknown or unassigned) + * @param broadcast_addr the broadcast address (can be NULL for unknown or unassigned) + * @param netmask the network mask (can be NULL for unknown or unassigned)) * @param addrlen length of the address * @return GNUNET_OK to continue iteration, GNUNET_SYSERR to abort */ typedef int (*GNUNET_OS_NetworkInterfaceProcessor) (void *cls, const char *name, int isDefault, - const struct sockaddr * - addr, socklen_t addrlen); + const struct sockaddr * addr, + const struct sockaddr * broadcast_addr, + const struct sockaddr * netmask, + socklen_t addrlen); /** diff --git a/src/nat/nat.c b/src/nat/nat.c index 0a1f4c4b5..c0f9daa32 100644 --- a/src/nat/nat.c +++ b/src/nat/nat.c @@ -633,8 +633,12 @@ process_hostname_ip (void *cls, const struct sockaddr *addr, socklen_t addrlen) * @return GNUNET_OK to continue iterating */ static int -process_interfaces (void *cls, const char *name, int isDefault, - const struct sockaddr *addr, socklen_t addrlen) +process_interfaces(void *cls, const char *name, + int isDefault, + const struct sockaddr * addr, + const struct sockaddr * broadcast_addr, + const struct sockaddr * netmask, + socklen_t addrlen) { struct GNUNET_NAT_Handle *h = cls; const struct sockaddr_in *s4; diff --git a/src/nat/test_nat.c b/src/nat/test_nat.c index 19631af08..f7f64ce03 100644 --- a/src/nat/test_nat.c +++ b/src/nat/test_nat.c @@ -97,8 +97,12 @@ struct addr_cls * @return GNUNET_OK to continue iterating */ static int -process_if (void *cls, const char *name, int isDefault, - const struct sockaddr *addr, socklen_t addrlen) +process_if (void *cls, const char *name, + int isDefault, + const struct sockaddr * addr, + const struct sockaddr * broadcast_addr, + const struct sockaddr * netmask, + socklen_t addrlen) { struct addr_cls *data = cls; diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c index 1f5327c93..41ecb178d 100644 --- a/src/transport/plugin_transport_tcp.c +++ b/src/transport/plugin_transport_tcp.c @@ -428,7 +428,7 @@ tcp_nat_port_map_callback (void *cls, int add_remove, void *arg; size_t args; - GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "tcp", + GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, "tcp", "NPMC called with %d for address `%s'\n", add_remove, GNUNET_a2s (addr, addrlen)); /* convert 'addr' to our internal format */ diff --git a/src/util/os_network.c b/src/util/os_network.c index 70d143ba1..1fd55ff04 100644 --- a/src/util/os_network.c +++ b/src/util/os_network.c @@ -157,7 +157,10 @@ GNUNET_OS_network_interfaces_list (GNUNET_OS_NetworkInterfaceProcessor proc, if (GNUNET_OK != proc (proc_cls, szEntry, pTable->table[dwIfIdx].dwIndex == dwExternalNIC, - (const struct sockaddr *) &sa, sizeof (sa))) + (const struct sockaddr *) &sa, + NULL, + NULL, + sizeof (sa))) break; } } @@ -190,7 +193,10 @@ GNUNET_OS_network_interfaces_list (GNUNET_OS_NetworkInterfaceProcessor proc, if (GNUNET_OK != proc (proc_cls, ifa_ptr->ifa_name, 0 == strcmp (ifa_ptr->ifa_name, GNUNET_DEFAULT_INTERFACE), - ifa_ptr->ifa_addr, alen)) + ifa_ptr->ifa_addr, + NULL, + NULL, + alen)) break; } } @@ -262,7 +268,10 @@ GNUNET_OS_network_interfaces_list (GNUNET_OS_NetworkInterfaceProcessor proc, a4.sin_addr = v4; if (GNUNET_OK != proc (proc_cls, ifc, 0 == strcmp (ifc, GNUNET_DEFAULT_INTERFACE), - (const struct sockaddr *) &a4, sizeof (a4))) + (const struct sockaddr *) &a4, + NULL, + NULL, + sizeof (a4))) break; continue; } @@ -277,7 +286,10 @@ GNUNET_OS_network_interfaces_list (GNUNET_OS_NetworkInterfaceProcessor proc, a6.sin6_addr = v6; if (GNUNET_OK != proc (proc_cls, ifc, 0 == strcmp (ifc, GNUNET_DEFAULT_INTERFACE), - (const struct sockaddr *) &a6, sizeof (a6))) + (const struct sockaddr *) &a6, + NULL, + NULL, + sizeof (a6))) break; continue; } diff --git a/src/util/test_os_network.c b/src/util/test_os_network.c index 315f97d97..ab39e5eda 100644 --- a/src/util/test_os_network.c +++ b/src/util/test_os_network.c @@ -34,7 +34,11 @@ * (success). */ static int -proc (void *cls, const char *name, int isDefault, const struct sockaddr *addr, +proc (void *cls, const char *name, + int isDefault, + const struct sockaddr * addr, + const struct sockaddr * broadcast_addr, + const struct sockaddr * netmask, socklen_t addrlen) { int *ok = cls;