Do not stop interface iteration if address is NULL
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
This commit is contained in:
parent
a9e160ec07
commit
fbde1ba5b8
1 changed files with 15 additions and 13 deletions
|
@ -71,23 +71,25 @@ os_getifaddrs(
|
||||||
ifa = ifa_root = NULL;
|
ifa = ifa_root = NULL;
|
||||||
|
|
||||||
for (sys_ifa = sys_ifa_root;
|
for (sys_ifa = sys_ifa_root;
|
||||||
sys_ifa != NULL && sys_ifa->ifa_addr != NULL && err == 0;
|
sys_ifa != NULL && err == 0;
|
||||||
sys_ifa = sys_ifa->ifa_next)
|
sys_ifa = sys_ifa->ifa_next)
|
||||||
{
|
{
|
||||||
sa = sys_ifa->ifa_addr;
|
sa = sys_ifa->ifa_addr;
|
||||||
use = (afs == NULL);
|
if (sa != NULL) {
|
||||||
for (int i = 0; !use && afs[i] != 0; i++) {
|
use = (afs == NULL);
|
||||||
use = (sa->sa_family == afs[i]);
|
for (int i = 0; !use && afs[i] != 0; i++) {
|
||||||
}
|
use = (sa->sa_family == afs[i]);
|
||||||
|
}
|
||||||
|
|
||||||
if (use) {
|
if (use) {
|
||||||
err = copyaddr(&ifa_next, sys_ifa);
|
err = copyaddr(&ifa_next, sys_ifa);
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
if (ifa == NULL) {
|
if (ifa == NULL) {
|
||||||
ifa = ifa_root = ifa_next;
|
ifa = ifa_root = ifa_next;
|
||||||
} else {
|
} else {
|
||||||
ifa->next = ifa_next;
|
ifa->next = ifa_next;
|
||||||
ifa = ifa_next;
|
ifa = ifa_next;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue