- fix
[oweals/gnunet.git] / src / util / test_os_network.c
index e92eba2c96a58af20d9c96a566156a5ea7058976..4486e6a998fc12ddade158d438a2fafa42459112 100644 (file)
@@ -26,7 +26,7 @@
 #include "gnunet_configuration_lib.h"
 #include "gnunet_os_lib.h"
 
-#define VERBOSE 0
+#define VERBOSE 1
 
 /**
  * Check if the address we got is IPv4 or IPv6 loopback (which should
  * (success).
  */
 static int
-proc (void *cls,
-      const char *name,
-      int isDefault, const struct sockaddr *addr, socklen_t addrlen)
+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;
   char buf[INET6_ADDRSTRLEN];
 
   if (NULL == addr)
     return GNUNET_OK;
+#if VERBOSE
+  const char * protocol;
+  if (addrlen == sizeof (struct sockaddr_in))
+    protocol = "IPv4";
+  else
+    protocol = "IPv6";
+  printf ("%s Address `%s'\n", protocol, GNUNET_a2s ((const struct sockaddr *) addr,addrlen) );
+  printf ("     Netmask `%s'\n", GNUNET_a2s ((const struct sockaddr *) netmask, addrlen) );
+  printf ("     Broadcast `%s'\n", GNUNET_a2s ((const struct sockaddr *) broadcast_addr,addrlen) );
+#endif
 
   inet_ntop (addr->sa_family,
-             (addr->sa_family == AF_INET) ?
-             (void *) &((struct sockaddr_in *) addr)->sin_addr :
-             (void *) &((struct sockaddr_in6 *) addr)->sin6_addr,
-             buf, sizeof (buf));
+             (addr->sa_family ==
+              AF_INET) ? (void *) &((struct sockaddr_in *) addr)->sin_addr
+             : (void *) &((struct sockaddr_in6 *) addr)->sin6_addr, buf,
+             sizeof (buf));
   if ((0 == strcmp ("::1", buf)) || (0 == strcmp ("127.0.0.1", buf)))
     *ok = 0;
   return GNUNET_OK;