diff options
Diffstat (limited to 'deps/uv/src/unix/linux-core.c')
-rw-r--r-- | deps/uv/src/unix/linux-core.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/deps/uv/src/unix/linux-core.c b/deps/uv/src/unix/linux-core.c index 23a5977279..630f5a1ccc 100644 --- a/deps/uv/src/unix/linux-core.c +++ b/deps/uv/src/unix/linux-core.c @@ -688,9 +688,15 @@ uv_err_t uv_interface_addresses(uv_interface_address_t** addresses, address->name = strdup(ent->ifa_name); if (ent->ifa_addr->sa_family == AF_INET6) { - address->address.address6 = *((struct sockaddr_in6 *)ent->ifa_addr); + address->address.address6 = *((struct sockaddr_in6*) ent->ifa_addr); } else { - address->address.address4 = *((struct sockaddr_in *)ent->ifa_addr); + address->address.address4 = *((struct sockaddr_in*) ent->ifa_addr); + } + + if (ent->ifa_netmask->sa_family == AF_INET6) { + address->netmask.netmask6 = *((struct sockaddr_in6*) ent->ifa_netmask); + } else { + address->netmask.netmask4 = *((struct sockaddr_in*) ent->ifa_netmask); } address->is_internal = ent->ifa_flags & IFF_LOOPBACK ? 1 : 0; |