From 27996731617d36b8e1beed742b5076995df06f5b Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Sun, 29 Oct 2006 19:22:28 +0000 Subject: [PATCH] Fixed interface reporting on BSD --- src/probe.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/probe.c b/src/probe.c index 96e68f7..88e6dc5 100644 --- a/src/probe.c +++ b/src/probe.c @@ -356,18 +356,19 @@ static int _ifinfo_bsd(struct ifinfo ** dev) static int fd = -1; struct ifaddrs * ifa; struct ifaddrs * p; - int i = 0; if(fd < 0 && (fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) - return _probe_error("socket", 1); + return _probe_error("socket", -1); if(getifaddrs(&ifa) != 0) - return _probe_error("getifaddrs", 1); + return _probe_error("getifaddrs", -1); for(p = ifa; p != NULL; p = p->ifa_next) { if(p->ifa_addr->sa_family != AF_LINK) continue; - if((ret |= _ifinfo_bsd_append(dev, p->ifa_name, fd, i)) == 0) - i++; + if(_ifinfo_bsd_append(dev, p->ifa_name, fd, ret++) == 0) + continue; + ret = -1; + break; } freeifaddrs(ifa); return ret;