miniupnpd/getifaddr.c: fix getifaddr_in6()
-1 is returned if no address is found
This commit is contained in:
parent
081c46338c
commit
d397d73628
|
@ -122,6 +122,7 @@ getifaddr(const char * ifname, char * buf, int len,
|
|||
int getifaddr_in6(const char * ifname, struct in6_addr * addr){
|
||||
struct ifaddrs * ifap;
|
||||
struct ifaddrs * ife;
|
||||
int found = 0;
|
||||
|
||||
if(!ifname || ifname[0]=='\0')
|
||||
return -1;
|
||||
|
@ -130,9 +131,8 @@ int getifaddr_in6(const char * ifname, struct in6_addr * addr){
|
|||
syslog(LOG_ERR, "getifaddrs: %m");
|
||||
return -1;
|
||||
}
|
||||
for(ife = ifap; ife; ife = ife->ifa_next)
|
||||
for(ife = ifap; ife && !found; ife = ife->ifa_next)
|
||||
{
|
||||
int found = 0;
|
||||
/* skip other interfaces if one was specified */
|
||||
if(ifname && (0 != strcmp(ifname, ife->ifa_name)))
|
||||
continue;
|
||||
|
@ -165,12 +165,9 @@ int getifaddr_in6(const char * ifname, struct in6_addr * addr){
|
|||
}
|
||||
break;
|
||||
}
|
||||
if (found) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
freeifaddrs(ifap);
|
||||
return 0;
|
||||
return (found ? 0 : -1);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue