diff --git a/src/utils.cpp b/src/utils.cpp index 18e946a09c6e9db57b8a9ebef8a29ba7a19eeb80..9cd9f4927c70b33a084a0690d16311f59abdc1b9 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -94,7 +94,8 @@ SockAddr::isLoopback() const { switch (getFamily()) { case AF_INET: { - uint8_t b1 = (uint8_t)(getIPv4().sin_addr.s_addr >> 24); + auto addr_host = ntohl(getIPv4().sin_addr.s_addr); + uint8_t b1 = (uint8_t)(addr_host >> 24); return b1 == 127; } case AF_INET6: @@ -111,10 +112,11 @@ SockAddr::isPrivate() const return true; } switch (getFamily()) { - case AF_INET: + case AF_INET: { + auto addr_host = ntohl(getIPv4().sin_addr.s_addr); uint8_t b1, b2; - b1 = (uint8_t)(getIPv4().sin_addr.s_addr >> 24); - b2 = (uint8_t)((getIPv4().sin_addr.s_addr >> 16) & 0x0ff); + b1 = (uint8_t)(addr_host >> 24); + b2 = (uint8_t)((addr_host >> 16) & 0x0ff); // 10.x.y.z if (b1 == 10) return true; @@ -125,6 +127,7 @@ SockAddr::isPrivate() const if ((b1 == 192) && (b2 == 168)) return true; return false; + } case AF_INET6: { const uint8_t* addr6 = reinterpret_cast<const uint8_t*>(&getIPv6().sin6_addr); if (addr6[0] == 0xfc)