summaryrefslogtreecommitdiff
path: root/source3/lib/replace/getifaddrs.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-12-16 03:22:13 +0100
committerMichael Adam <obnox@samba.org>2008-02-19 21:56:52 +0100
commit7728a23d43a79eefaf2cc7e1998283e3d1e095f8 (patch)
tree4c639e11bb9d39a54f040c6839ab77751f08be57 /source3/lib/replace/getifaddrs.c
parentd0d4fc5f5412bcf2977afc01edee92107e995c80 (diff)
downloadsamba-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.c21
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;
}