From abca9f7f5893adee7d0eac2ca8962b9c5321e0fe Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 4 Apr 2004 00:41:39 +0000 Subject: Update. * inet/test-ifaddrs.c: Fight warnings. * argp/argp-help.c: Fight warnings. * include/time.h: Declare __difftime. --- inet/test-ifaddrs.c | 76 +++++++++++++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 37 deletions(-) (limited to 'inet/test-ifaddrs.c') diff --git a/inet/test-ifaddrs.c b/inet/test-ifaddrs.c index 5057fac1ad..185859e323 100644 --- a/inet/test-ifaddrs.c +++ b/inet/test-ifaddrs.c @@ -1,5 +1,5 @@ /* Test listing of network interface addresses. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -25,10 +25,44 @@ #include #include +static int failures; + +static const char * +addr_string (struct sockaddr *sa, char *buf, size_t size) +{ + if (sa == NULL) + return ""; + + switch (sa->sa_family) + { + case AF_INET: + return inet_ntop (AF_INET, &((struct sockaddr_in *) sa)->sin_addr, + buf, size); + case AF_INET6: + return inet_ntop (AF_INET6, &((struct sockaddr_in6 *) sa)->sin6_addr, + buf, size); +#ifdef AF_LINK + case AF_LINK: + return ""; +#endif + case AF_UNSPEC: + return "---"; + + case AF_PACKET: + return ""; + + default: + ++failures; + printf ("sa_family=%d %08x\n", sa->sa_family, + *(int*)&((struct sockaddr_in *) sa)->sin_addr.s_addr); + return ""; + } +} + + int main (void) { - int failures = 0; struct ifaddrs *ifaces, *ifa; if (getifaddrs (&ifaces) < 0) @@ -48,43 +82,11 @@ Name Flags Address Netmask Broadcast/Destination"); for (ifa = ifaces; ifa != NULL; ifa = ifa->ifa_next) { char abuf[64], mbuf[64], dbuf[64]; - inline const char *addr_string (struct sockaddr *sa, char *buf) - { - if (sa == NULL) - return ""; - - switch (sa->sa_family) - { - case AF_INET: - return inet_ntop (AF_INET, - &((struct sockaddr_in *) sa)->sin_addr, - buf, sizeof abuf); - case AF_INET6: - return inet_ntop (AF_INET6, - &((struct sockaddr_in6 *) sa)->sin6_addr, - buf, sizeof abuf); -#ifdef AF_LINK - case AF_LINK: - return ""; -#endif - case AF_UNSPEC: - return "---"; - - case AF_PACKET: - return ""; - - default: - ++failures; - printf ("sa_family=%d %08x\n", sa->sa_family, - *(int*)&((struct sockaddr_in *) sa)->sin_addr.s_addr); - return ""; - } - } printf ("%-15s%#.4x %-15s %-15s %-15s\n", ifa->ifa_name, ifa->ifa_flags, - addr_string (ifa->ifa_addr, abuf), - addr_string (ifa->ifa_netmask, mbuf), - addr_string (ifa->ifa_broadaddr, dbuf)); + addr_string (ifa->ifa_addr, abuf, sizeof (abuf)), + addr_string (ifa->ifa_netmask, mbuf, sizeof (mbuf)), + addr_string (ifa->ifa_broadaddr, dbuf, sizeof (dbuf))); } freeifaddrs (ifaces); -- cgit v1.2.3