Copy socket address regardless of interface state
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
This commit is contained in:
parent
4b3c6ed643
commit
40b7b5f423
2 changed files with 5 additions and 1 deletions
|
@ -161,7 +161,7 @@ copyaddr(
|
||||||
|
|
||||||
if (ifa->name == NULL) {
|
if (ifa->name == NULL) {
|
||||||
err = ENOMEM;
|
err = ENOMEM;
|
||||||
} else if (ifa->flags & IFF_UP) {
|
} else {
|
||||||
ifa->addr = os_memdup(sa, addr->Address.iSockaddrLength);
|
ifa->addr = os_memdup(sa, addr->Address.iSockaddrLength);
|
||||||
if (ifa->addr == NULL) {
|
if (ifa->addr == NULL) {
|
||||||
err = ENOMEM;
|
err = ENOMEM;
|
||||||
|
|
|
@ -70,6 +70,7 @@ CUnit_Test(os_getifaddrs, ipv4)
|
||||||
err = os_getifaddrs(&ifa_root, afs);
|
err = os_getifaddrs(&ifa_root, afs);
|
||||||
CU_ASSERT_EQUAL_FATAL(err, 0);
|
CU_ASSERT_EQUAL_FATAL(err, 0);
|
||||||
for (ifa = ifa_root; ifa; ifa = ifa->next) {
|
for (ifa = ifa_root; ifa; ifa = ifa->next) {
|
||||||
|
CU_ASSERT_PTR_NOT_EQUAL_FATAL(ifa->addr, NULL);
|
||||||
CU_ASSERT_EQUAL(ifa->addr->sa_family, AF_INET);
|
CU_ASSERT_EQUAL(ifa->addr->sa_family, AF_INET);
|
||||||
if (ifa->addr->sa_family == AF_INET) {
|
if (ifa->addr->sa_family == AF_INET) {
|
||||||
if (ifa->flags & IFF_LOOPBACK) {
|
if (ifa->flags & IFF_LOOPBACK) {
|
||||||
|
@ -95,6 +96,7 @@ CUnit_Test(os_getifaddrs, null_filter)
|
||||||
err = os_getifaddrs(&ifa_root, NULL);
|
err = os_getifaddrs(&ifa_root, NULL);
|
||||||
CU_ASSERT_EQUAL_FATAL(err, 0);
|
CU_ASSERT_EQUAL_FATAL(err, 0);
|
||||||
for (ifa = ifa_root; ifa; ifa = ifa->next) {
|
for (ifa = ifa_root; ifa; ifa = ifa->next) {
|
||||||
|
CU_ASSERT_PTR_NOT_EQUAL_FATAL(ifa->addr, NULL);
|
||||||
cnt++;
|
cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,6 +130,7 @@ CUnit_Test(os_getifaddrs, ipv6)
|
||||||
err = os_getifaddrs(&ifa_root, afs);
|
err = os_getifaddrs(&ifa_root, afs);
|
||||||
CU_ASSERT_EQUAL_FATAL(err, 0);
|
CU_ASSERT_EQUAL_FATAL(err, 0);
|
||||||
for (ifa = ifa_root; ifa; ifa = ifa->next) {
|
for (ifa = ifa_root; ifa; ifa = ifa->next) {
|
||||||
|
CU_ASSERT_PTR_NOT_EQUAL_FATAL(ifa->addr, NULL);
|
||||||
CU_ASSERT_EQUAL(ifa->addr->sa_family, AF_INET6);
|
CU_ASSERT_EQUAL(ifa->addr->sa_family, AF_INET6);
|
||||||
if (ifa->addr->sa_family == AF_INET6) {
|
if (ifa->addr->sa_family == AF_INET6) {
|
||||||
have_ipv6 = 1;
|
have_ipv6 = 1;
|
||||||
|
@ -163,6 +166,7 @@ CUnit_Test(os_getifaddrs, ipv4_n_ipv6)
|
||||||
err = os_getifaddrs(&ifa_root, afs);
|
err = os_getifaddrs(&ifa_root, afs);
|
||||||
CU_ASSERT_EQUAL_FATAL(err, 0);
|
CU_ASSERT_EQUAL_FATAL(err, 0);
|
||||||
for (ifa = ifa_root; ifa; ifa = ifa->next) {
|
for (ifa = ifa_root; ifa; ifa = ifa->next) {
|
||||||
|
CU_ASSERT_PTR_NOT_EQUAL_FATAL(ifa->addr, NULL);
|
||||||
CU_ASSERT(ifa->addr->sa_family == AF_INET ||
|
CU_ASSERT(ifa->addr->sa_family == AF_INET ||
|
||||||
ifa->addr->sa_family == AF_INET6);
|
ifa->addr->sa_family == AF_INET6);
|
||||||
if (ifa->addr->sa_family == AF_INET) {
|
if (ifa->addr->sa_family == AF_INET) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue