GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 2, or (at your
+ by the Free Software Foundation; either version 3, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
#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;