diff options
Diffstat (limited to 'src/bun.js/bindings/node_os/interface_addresses.cpp')
| -rw-r--r-- | src/bun.js/bindings/node_os/interface_addresses.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/bun.js/bindings/node_os/interface_addresses.cpp b/src/bun.js/bindings/node_os/interface_addresses.cpp index 706c43340..d39f66bd5 100644 --- a/src/bun.js/bindings/node_os/interface_addresses.cpp +++ b/src/bun.js/bindings/node_os/interface_addresses.cpp @@ -1,3 +1,4 @@ +#include "mimalloc.h" #include <string.h> #include <stdio.h> #include <stdlib.h> @@ -6,6 +7,11 @@ #include <ifaddrs.h> #include <arpa/inet.h> +#define free mi_free +#define malloc mi_malloc +#define realloc mi_realloc +#define strdup mi_strdup + #ifdef __linux__ #include <netpacket/packet.h> #include <net/ethernet.h> @@ -22,8 +28,9 @@ extern "C" uint32_t getBitCountFromIPv4Mask(uint32_t mask) { extern "C" uint32_t getBitCountFromIPv6Mask(const in6_addr &mask) { uint32_t bitCount = 0; - for (uint32_t ii = 0; ii < 4; ii++) { - bitCount += __builtin_popcount(mask.s6_addr32[ii]); + // uint32 version is unsupported on some platforms + for (size_t ii = 0; ii < 16; ii++) { + bitCount += __builtin_popcount(mask.s6_addr[ii]); } return bitCount; @@ -37,7 +44,7 @@ extern "C" NetworkInterface *getNetworkInterfaces() { struct ifaddrs *ifap, *ifa; unsigned char *ptr; - getifaddrs (&ifap); + getifaddrs(&ifap); for (ifa = ifap; ifa; ifa = ifa->ifa_next) { if (ifa->ifa_addr && ifa->ifa_addr->sa_family==AF_INET) { struct sockaddr_in *sa = (struct sockaddr_in *) ifa->ifa_addr; |
