From 3c554fb744a5fab98c122ec80313a156b5da033a Mon Sep 17 00:00:00 2001 From: Ghislain Rodrigues Date: Mon, 28 Nov 2016 07:33:44 +0000 Subject: [PATCH 1/2] the last IP was ignored, now return 1 if an ip is found, 0 otherwise. ifap is available from the argument anyway --- net.c | 6 ++++-- net.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/net.c b/net.c index 7a2a292..9d59a13 100644 --- a/net.c +++ b/net.c @@ -10,8 +10,10 @@ int net_getIPs(struct ifaddrs **ifap) { return 0; } -struct ifaddrs *net_getNextIP(struct ifaddrs **ifap, char **interface, char **addr) { +char net_getNextIP(struct ifaddrs **ifap, char **interface, char **addr) { struct sockaddr_in *sa; + *interface = 0; + *addr = 0; if (*ifap) { if ( @@ -27,7 +29,7 @@ struct ifaddrs *net_getNextIP(struct ifaddrs **ifap, char **interface, char **ad *addr = inet_ntoa(sa->sin_addr); *ifap = (*ifap)->ifa_next; - return *ifap; + return 1; } return 0; diff --git a/net.h b/net.h index 2a9185f..a92b115 100644 --- a/net.h +++ b/net.h @@ -4,7 +4,7 @@ #include int net_getIPs(struct ifaddrs **ifap); -struct ifaddrs *net_getNextIP(struct ifaddrs **ifap, char **interface, char **addr); +char net_getNextIP(struct ifaddrs **ifap, char **interface, char **addr); void net_freeIfAddr(struct ifaddrs *ifap); #endif From 66b9fbf6827a01728db76a4edb270ca704708a4e Mon Sep 17 00:00:00 2001 From: Ghislain Rodrigues Date: Mon, 28 Nov 2016 07:35:23 +0000 Subject: [PATCH 2/2] identation --- net.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/net.c b/net.c index 9d59a13..494055c 100644 --- a/net.c +++ b/net.c @@ -15,24 +15,24 @@ char net_getNextIP(struct ifaddrs **ifap, char **interface, char **addr) { *interface = 0; *addr = 0; - if (*ifap) { - if ( - (*ifap)->ifa_addr->sa_family != AF_INET - || IFF_LOOPBACK == ((*ifap)->ifa_flags & IFF_LOOPBACK) - ) { - *ifap = (*ifap)->ifa_next; - return net_getNextIP(ifap, interface, addr); - } - - sa = (struct sockaddr_in *) (*ifap)->ifa_addr; - *interface = (*ifap)->ifa_name; - *addr = inet_ntoa(sa->sin_addr); - *ifap = (*ifap)->ifa_next; + if (!*ifap) { + return 0; + } - return 1; + if ( + (*ifap)->ifa_addr->sa_family != AF_INET + || IFF_LOOPBACK == ((*ifap)->ifa_flags & IFF_LOOPBACK) + ) { + *ifap = (*ifap)->ifa_next; + return net_getNextIP(ifap, interface, addr); } - return 0; + sa = (struct sockaddr_in *) (*ifap)->ifa_addr; + *interface = (*ifap)->ifa_name; + *addr = inet_ntoa(sa->sin_addr); + *ifap = (*ifap)->ifa_next; + + return 1; } void net_freeIfAddr(struct ifaddrs *ifap) {