diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2007-12-16 03:22:13 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-02-19 21:56:52 +0100 |
commit | 7728a23d43a79eefaf2cc7e1998283e3d1e095f8 (patch) | |
tree | 4c639e11bb9d39a54f040c6839ab77751f08be57 /source3/lib/replace/getifaddrs.c | |
parent | d0d4fc5f5412bcf2977afc01edee92107e995c80 (diff) | |
download | samba-7728a23d43a79eefaf2cc7e1998283e3d1e095f8.tar.gz samba-7728a23d43a79eefaf2cc7e1998283e3d1e095f8.tar.bz2 samba-7728a23d43a79eefaf2cc7e1998283e3d1e095f8.zip |
r26469: Fix paths, only include IPv4 addresses for now.
(cherry picked from commit fa9e3b6fa871b7541878f836ea54e882e614a3cf)
(This used to be commit a2d6f6b4ae7fb6711d4228b9e255eebb6bf344bd)
Diffstat (limited to 'source3/lib/replace/getifaddrs.c')
-rw-r--r-- | source3/lib/replace/getifaddrs.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/source3/lib/replace/getifaddrs.c b/source3/lib/replace/getifaddrs.c index a4f16ddb76..e04c023209 100644 --- a/source3/lib/replace/getifaddrs.c +++ b/source3/lib/replace/getifaddrs.c @@ -360,20 +360,25 @@ int getifaddrs(struct ifaddrs **ifap) int main() { - struct ifaddrs *ifs; - int total = get_interfaces(ifaces, MAX_INTERFACES); - int i; - - int ret = getifaddrs(&ifs); + struct ifaddrs *ifs = NULL; + int ret; + + ret = getifaddrs(&ifs); if (ret != 0) { perror("getifaddrs() failed"); return 1; } while (ifs) { - printf("%-10s ", ifs->ifr_name); - printf("IP=%s ", inet_ntoa(((struct sockaddr_in *)ifs->ifr_addr)->sin_addr)); - printf("NETMASK=%s\n", inet_ntoa(((struct sockaddr_in *)ifs->ifr_netmask)->sin_addr)); + printf("%-10s ", ifs->ifa_name); + if (ifs->ifa_addr != NULL && + ifs->ifa_addr->sa_family == AF_INET) { + printf("IP=%s ", inet_ntoa(((struct sockaddr_in *)ifs->ifa_addr)->sin_addr)); + if (ifs->ifa_netmask != NULL) + printf("NETMASK=%s", inet_ntoa(((struct sockaddr_in *)ifs->ifa_netmask)->sin_addr)); + } + printf("\n"); + ifs = ifs->ifa_next; } return 0; } |