| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 76d4f22 commit 0a759df
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -158,10 +158,12 @@ SocketAddress::CompareResult compare_ipv4( | |||
| 158 | 158 | reinterpret_cast<const sockaddr_in*>(one.data()); | |
| 159 | 159 | const sockaddr_in* two_in = | |
| 160 | 160 | reinterpret_cast<const sockaddr_in*>(two.data()); | |
| 161 | + const uint32_t s_addr_one = ntohl(one_in->sin_addr.s_addr); | ||
| 162 | + const uint32_t s_addr_two = ntohl(two_in->sin_addr.s_addr); | ||
| 161 | 163 | ||
| 162 | - if (one_in->sin_addr.s_addr < two_in->sin_addr.s_addr) | ||
| 164 | + if (s_addr_one < s_addr_two) | ||
| 163 | 165 | return SocketAddress::CompareResult::LESS_THAN; | |
| 164 | - else if (one_in->sin_addr.s_addr == two_in->sin_addr.s_addr) | ||
| 166 | + else if (s_addr_one == s_addr_two) | ||
| 165 | 167 | return SocketAddress::CompareResult::SAME; | |
| 166 | 168 | else | |
| 167 | 169 | return SocketAddress::CompareResult::GREATER_THAN; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -209,6 +209,27 @@ const util = require('util'); | |||
| 209 | 209 | assert(!blockList.check('8592:757c:efaf:2fff:ffff:ffff:ffff:ffff', 'ipv6')); | |
| 210 | 210 | } | |
| 211 | 211 | ||
| 212 | + { | ||
| 213 | + // Regression test for https://github.com/nodejs/node/issues/39074 | ||
| 214 | + const blockList = new BlockList(); | ||
| 215 | + | ||
| 216 | + blockList.addRange('10.0.0.2', '10.0.0.10'); | ||
| 217 | + | ||
| 218 | + // IPv4 checks against IPv4 range. | ||
| 219 | + assert(blockList.check('10.0.0.2')); | ||
| 220 | + assert(blockList.check('10.0.0.10')); | ||
| 221 | + assert(!blockList.check('192.168.0.3')); | ||
| 222 | + assert(!blockList.check('2.2.2.2')); | ||
| 223 | + assert(!blockList.check('255.255.255.255')); | ||
| 224 | + | ||
| 225 | + // IPv6 checks against IPv4 range. | ||
| 226 | + assert(blockList.check('::ffff:0a00:0002', 'ipv6')); | ||
| 227 | + assert(blockList.check('::ffff:0a00:000a', 'ipv6')); | ||
| 228 | + assert(!blockList.check('::ffff:c0a8:0003', 'ipv6')); | ||
| 229 | + assert(!blockList.check('::ffff:0202:0202', 'ipv6')); | ||
| 230 | + assert(!blockList.check('::ffff:ffff:ffff', 'ipv6')); | ||
| 231 | + } | ||
| 232 | + | ||
| 212 | 233 | { | |
| 213 | 234 | const blockList = new BlockList(); | |
| 214 | 235 | assert.throws(() => blockList.addRange('1.1.1.2', '1.1.1.1'), /ERR_INVALID_ARG_VALUE/); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments