Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcjihrig <cjihrig@gmail.com>2021-06-20 01:12:54 +0300
committerNode.js GitHub Bot <github-bot@iojs.org>2021-06-22 05:06:46 +0300
commitb82a1a1ac95d4e794657e99146f6777344c59dac (patch)
tree3a50130f3feb51a73aac992aaa80e030dd170716 /src/node_sockaddr.cc
parentc5cc3d4a8b22f4677311bccd609c7792d788db2b (diff)
src: compare IPv4 addresses in host byte order
This commit updates compare_ipv4() to use the host byte order. PR-URL: https://github.com/nodejs/node/pull/39096 Fixes: https://github.com/nodejs/node/issues/39074 Reviewed-By: Khaidi Chu <i@2333.moe> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Diffstat (limited to 'src/node_sockaddr.cc')
-rw-r--r--src/node_sockaddr.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/node_sockaddr.cc b/src/node_sockaddr.cc
index b15b6ab4719..09a74f30292 100644
--- a/src/node_sockaddr.cc
+++ b/src/node_sockaddr.cc
@@ -159,10 +159,12 @@ SocketAddress::CompareResult compare_ipv4(
reinterpret_cast<const sockaddr_in*>(one.data());
const sockaddr_in* two_in =
reinterpret_cast<const sockaddr_in*>(two.data());
+ const uint32_t s_addr_one = ntohl(one_in->sin_addr.s_addr);
+ const uint32_t s_addr_two = ntohl(two_in->sin_addr.s_addr);
- if (one_in->sin_addr.s_addr < two_in->sin_addr.s_addr)
+ if (s_addr_one < s_addr_two)
return SocketAddress::CompareResult::LESS_THAN;
- else if (one_in->sin_addr.s_addr == two_in->sin_addr.s_addr)
+ else if (s_addr_one == s_addr_two)
return SocketAddress::CompareResult::SAME;
else
return SocketAddress::CompareResult::GREATER_THAN;