Skip to content

Commit fb3e812

Browse files
committed
p2p: return CSubNet in LookupSubNet
1 parent 7130048 commit fb3e812

File tree

8 files changed

+101
-115
lines changed

8 files changed

+101
-115
lines changed

src/httpserver.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,7 @@ static bool InitHTTPAllowList()
173173
rpc_allow_subnets.push_back(CSubNet{LookupHost("127.0.0.1", false).value(), 8}); // always allow IPv4 local subnet
174174
rpc_allow_subnets.push_back(CSubNet{LookupHost("::1", false).value()}); // always allow IPv6 localhost
175175
for (const std::string& strAllow : gArgs.GetArgs("-rpcallowip")) {
176-
CSubNet subnet;
177-
LookupSubNet(strAllow, subnet);
176+
const CSubNet subnet{LookupSubNet(strAllow)};
178177
if (!subnet.IsValid()) {
179178
uiInterface.ThreadSafeMessageBox(
180179
strprintf(Untranslated("Invalid -rpcallowip subnet specification: %s. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24)."), strAllow),

src/net_permissions.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,7 @@ bool NetWhitelistPermissions::TryParse(const std::string& str, NetWhitelistPermi
111111
if (!TryParsePermissionFlags(str, flags, offset, error)) return false;
112112

113113
const std::string net = str.substr(offset);
114-
CSubNet subnet;
115-
LookupSubNet(net, subnet);
114+
const CSubNet subnet{LookupSubNet(net)};
116115
if (!subnet.IsValid()) {
117116
error = strprintf(_("Invalid netmask specified in -whitelist: '%s'"), net);
118117
return false;

src/net_types.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ void BanMapFromJson(const UniValue& bans_json, banmap_t& bans)
6363
LogPrintf("Dropping entry with unknown version (%s) from ban list\n", version);
6464
continue;
6565
}
66-
CSubNet subnet;
6766
const auto& subnet_str = ban_entry_json[BANMAN_JSON_ADDR_KEY].get_str();
68-
if (!LookupSubNet(subnet_str, subnet)) {
67+
const CSubNet subnet{LookupSubNet(subnet_str)};
68+
if (!subnet.IsValid()) {
6969
LogPrintf("Dropping entry with unparseable address or subnet (%s) from ban list\n", subnet_str);
7070
continue;
7171
}

src/netbase.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -655,10 +655,12 @@ bool ConnectThroughProxy(const Proxy& proxy, const std::string& strDest, uint16_
655655
return true;
656656
}
657657

658-
bool LookupSubNet(const std::string& subnet_str, CSubNet& subnet_out)
658+
CSubNet LookupSubNet(const std::string& subnet_str)
659659
{
660+
CSubNet subnet;
661+
assert(!subnet.IsValid());
660662
if (!ContainsNoNUL(subnet_str)) {
661-
return false;
663+
return subnet;
662664
}
663665

664666
const size_t slash_pos{subnet_str.find_last_of('/')};
@@ -671,23 +673,21 @@ bool LookupSubNet(const std::string& subnet_str, CSubNet& subnet_out)
671673
uint8_t netmask;
672674
if (ParseUInt8(netmask_str, &netmask)) {
673675
// Valid number; assume CIDR variable-length subnet masking.
674-
subnet_out = CSubNet{addr.value(), netmask};
675-
return subnet_out.IsValid();
676+
subnet = CSubNet{addr.value(), netmask};
676677
} else {
677678
// Invalid number; try full netmask syntax. Never allow lookup for netmask.
678679
const std::optional<CNetAddr> full_netmask{LookupHost(netmask_str, /*fAllowLookup=*/false)};
679680
if (full_netmask.has_value()) {
680-
subnet_out = CSubNet{addr.value(), full_netmask.value()};
681-
return subnet_out.IsValid();
681+
subnet = CSubNet{addr.value(), full_netmask.value()};
682682
}
683683
}
684684
} else {
685685
// Single IP subnet (<ipv4>/32 or <ipv6>/128).
686-
subnet_out = CSubNet{addr.value()};
687-
return subnet_out.IsValid();
686+
subnet = CSubNet{addr.value()};
688687
}
689688
}
690-
return false;
689+
690+
return subnet;
691691
}
692692

693693
void InterruptSocks5(bool interrupt)

src/netbase.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,9 @@ CService LookupNumeric(const std::string& name, uint16_t portDefault = 0, DNSLoo
171171
* @param[in] subnet_str A string representation of a subnet of the form
172172
* `network address [ "/", ( CIDR-style suffix | netmask ) ]`
173173
* e.g. "2001:db8::/32", "192.0.2.0/255.255.255.0" or "8.8.8.8".
174-
* @param[out] subnet_out Internal subnet representation, if parsable/resolvable
175-
* from `subnet_str`.
176-
* @returns whether the operation succeeded or not.
174+
* @returns a CSubNet object (that may or may not be valid).
177175
*/
178-
bool LookupSubNet(const std::string& subnet_str, CSubNet& subnet_out);
176+
CSubNet LookupSubNet(const std::string& subnet_str);
179177

180178
/**
181179
* Create a TCP socket in the given address family.

src/rpc/net.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -719,7 +719,7 @@ static RPCHelpMan setban()
719719
}
720720
}
721721
else
722-
LookupSubNet(request.params[0].get_str(), subNet);
722+
subNet = LookupSubNet(request.params[0].get_str());
723723

724724
if (! (isSubnet ? subNet.IsValid() : netAddr.IsValid()) )
725725
throw JSONRPCError(RPC_CLIENT_INVALID_IP_OR_SUBNET, "Error: Invalid IP/Subnet");

src/test/fuzz/netbase_dns_lookup.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@ FUZZ_TARGET(netbase_dns_lookup)
5959
assert(!resolved_service.IsInternal());
6060
}
6161
{
62-
CSubNet resolved_subnet;
63-
if (LookupSubNet(name, resolved_subnet)) {
64-
assert(resolved_subnet.IsValid());
65-
}
62+
(void)LookupSubNet(name);
6663
}
6764
}

src/test/netbase_tests.cpp

Lines changed: 84 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,6 @@ static CNetAddr ResolveIP(const std::string& ip)
2727
return LookupHost(ip, false).value_or(CNetAddr{});
2828
}
2929

30-
static CSubNet ResolveSubNet(const std::string& subnet)
31-
{
32-
CSubNet ret;
33-
LookupSubNet(subnet, ret);
34-
return ret;
35-
}
36-
3730
static CNetAddr CreateInternal(const std::string& host)
3831
{
3932
CNetAddr addr;
@@ -159,49 +152,49 @@ BOOST_AUTO_TEST_CASE(embedded_test)
159152
BOOST_AUTO_TEST_CASE(subnet_test)
160153
{
161154

162-
BOOST_CHECK(ResolveSubNet("1.2.3.0/24") == ResolveSubNet("1.2.3.0/255.255.255.0"));
163-
BOOST_CHECK(ResolveSubNet("1.2.3.0/24") != ResolveSubNet("1.2.4.0/255.255.255.0"));
164-
BOOST_CHECK(ResolveSubNet("1.2.3.0/24").Match(ResolveIP("1.2.3.4")));
165-
BOOST_CHECK(!ResolveSubNet("1.2.2.0/24").Match(ResolveIP("1.2.3.4")));
166-
BOOST_CHECK(ResolveSubNet("1.2.3.4").Match(ResolveIP("1.2.3.4")));
167-
BOOST_CHECK(ResolveSubNet("1.2.3.4/32").Match(ResolveIP("1.2.3.4")));
168-
BOOST_CHECK(!ResolveSubNet("1.2.3.4").Match(ResolveIP("5.6.7.8")));
169-
BOOST_CHECK(!ResolveSubNet("1.2.3.4/32").Match(ResolveIP("5.6.7.8")));
170-
BOOST_CHECK(ResolveSubNet("::ffff:127.0.0.1").Match(ResolveIP("127.0.0.1")));
171-
BOOST_CHECK(ResolveSubNet("1:2:3:4:5:6:7:8").Match(ResolveIP("1:2:3:4:5:6:7:8")));
172-
BOOST_CHECK(!ResolveSubNet("1:2:3:4:5:6:7:8").Match(ResolveIP("1:2:3:4:5:6:7:9")));
173-
BOOST_CHECK(ResolveSubNet("1:2:3:4:5:6:7:0/112").Match(ResolveIP("1:2:3:4:5:6:7:1234")));
174-
BOOST_CHECK(ResolveSubNet("192.168.0.1/24").Match(ResolveIP("192.168.0.2")));
175-
BOOST_CHECK(ResolveSubNet("192.168.0.20/29").Match(ResolveIP("192.168.0.18")));
176-
BOOST_CHECK(ResolveSubNet("1.2.2.1/24").Match(ResolveIP("1.2.2.4")));
177-
BOOST_CHECK(ResolveSubNet("1.2.2.110/31").Match(ResolveIP("1.2.2.111")));
178-
BOOST_CHECK(ResolveSubNet("1.2.2.20/26").Match(ResolveIP("1.2.2.63")));
155+
BOOST_CHECK(LookupSubNet("1.2.3.0/24") == LookupSubNet("1.2.3.0/255.255.255.0"));
156+
BOOST_CHECK(LookupSubNet("1.2.3.0/24") != LookupSubNet("1.2.4.0/255.255.255.0"));
157+
BOOST_CHECK(LookupSubNet("1.2.3.0/24").Match(ResolveIP("1.2.3.4")));
158+
BOOST_CHECK(!LookupSubNet("1.2.2.0/24").Match(ResolveIP("1.2.3.4")));
159+
BOOST_CHECK(LookupSubNet("1.2.3.4").Match(ResolveIP("1.2.3.4")));
160+
BOOST_CHECK(LookupSubNet("1.2.3.4/32").Match(ResolveIP("1.2.3.4")));
161+
BOOST_CHECK(!LookupSubNet("1.2.3.4").Match(ResolveIP("5.6.7.8")));
162+
BOOST_CHECK(!LookupSubNet("1.2.3.4/32").Match(ResolveIP("5.6.7.8")));
163+
BOOST_CHECK(LookupSubNet("::ffff:127.0.0.1").Match(ResolveIP("127.0.0.1")));
164+
BOOST_CHECK(LookupSubNet("1:2:3:4:5:6:7:8").Match(ResolveIP("1:2:3:4:5:6:7:8")));
165+
BOOST_CHECK(!LookupSubNet("1:2:3:4:5:6:7:8").Match(ResolveIP("1:2:3:4:5:6:7:9")));
166+
BOOST_CHECK(LookupSubNet("1:2:3:4:5:6:7:0/112").Match(ResolveIP("1:2:3:4:5:6:7:1234")));
167+
BOOST_CHECK(LookupSubNet("192.168.0.1/24").Match(ResolveIP("192.168.0.2")));
168+
BOOST_CHECK(LookupSubNet("192.168.0.20/29").Match(ResolveIP("192.168.0.18")));
169+
BOOST_CHECK(LookupSubNet("1.2.2.1/24").Match(ResolveIP("1.2.2.4")));
170+
BOOST_CHECK(LookupSubNet("1.2.2.110/31").Match(ResolveIP("1.2.2.111")));
171+
BOOST_CHECK(LookupSubNet("1.2.2.20/26").Match(ResolveIP("1.2.2.63")));
179172
// All-Matching IPv6 Matches arbitrary IPv6
180-
BOOST_CHECK(ResolveSubNet("::/0").Match(ResolveIP("1:2:3:4:5:6:7:1234")));
173+
BOOST_CHECK(LookupSubNet("::/0").Match(ResolveIP("1:2:3:4:5:6:7:1234")));
181174
// But not `::` or `0.0.0.0` because they are considered invalid addresses
182-
BOOST_CHECK(!ResolveSubNet("::/0").Match(ResolveIP("::")));
183-
BOOST_CHECK(!ResolveSubNet("::/0").Match(ResolveIP("0.0.0.0")));
175+
BOOST_CHECK(!LookupSubNet("::/0").Match(ResolveIP("::")));
176+
BOOST_CHECK(!LookupSubNet("::/0").Match(ResolveIP("0.0.0.0")));
184177
// Addresses from one network (IPv4) don't belong to subnets of another network (IPv6)
185-
BOOST_CHECK(!ResolveSubNet("::/0").Match(ResolveIP("1.2.3.4")));
178+
BOOST_CHECK(!LookupSubNet("::/0").Match(ResolveIP("1.2.3.4")));
186179
// All-Matching IPv4 does not Match IPv6
187-
BOOST_CHECK(!ResolveSubNet("0.0.0.0/0").Match(ResolveIP("1:2:3:4:5:6:7:1234")));
180+
BOOST_CHECK(!LookupSubNet("0.0.0.0/0").Match(ResolveIP("1:2:3:4:5:6:7:1234")));
188181
// Invalid subnets Match nothing (not even invalid addresses)
189182
BOOST_CHECK(!CSubNet().Match(ResolveIP("1.2.3.4")));
190-
BOOST_CHECK(!ResolveSubNet("").Match(ResolveIP("4.5.6.7")));
191-
BOOST_CHECK(!ResolveSubNet("bloop").Match(ResolveIP("0.0.0.0")));
192-
BOOST_CHECK(!ResolveSubNet("bloop").Match(ResolveIP("hab")));
183+
BOOST_CHECK(!LookupSubNet("").Match(ResolveIP("4.5.6.7")));
184+
BOOST_CHECK(!LookupSubNet("bloop").Match(ResolveIP("0.0.0.0")));
185+
BOOST_CHECK(!LookupSubNet("bloop").Match(ResolveIP("hab")));
193186
// Check valid/invalid
194-
BOOST_CHECK(ResolveSubNet("1.2.3.0/0").IsValid());
195-
BOOST_CHECK(!ResolveSubNet("1.2.3.0/-1").IsValid());
196-
BOOST_CHECK(ResolveSubNet("1.2.3.0/32").IsValid());
197-
BOOST_CHECK(!ResolveSubNet("1.2.3.0/33").IsValid());
198-
BOOST_CHECK(!ResolveSubNet("1.2.3.0/300").IsValid());
199-
BOOST_CHECK(ResolveSubNet("1:2:3:4:5:6:7:8/0").IsValid());
200-
BOOST_CHECK(ResolveSubNet("1:2:3:4:5:6:7:8/33").IsValid());
201-
BOOST_CHECK(!ResolveSubNet("1:2:3:4:5:6:7:8/-1").IsValid());
202-
BOOST_CHECK(ResolveSubNet("1:2:3:4:5:6:7:8/128").IsValid());
203-
BOOST_CHECK(!ResolveSubNet("1:2:3:4:5:6:7:8/129").IsValid());
204-
BOOST_CHECK(!ResolveSubNet("fuzzy").IsValid());
187+
BOOST_CHECK(LookupSubNet("1.2.3.0/0").IsValid());
188+
BOOST_CHECK(!LookupSubNet("1.2.3.0/-1").IsValid());
189+
BOOST_CHECK(LookupSubNet("1.2.3.0/32").IsValid());
190+
BOOST_CHECK(!LookupSubNet("1.2.3.0/33").IsValid());
191+
BOOST_CHECK(!LookupSubNet("1.2.3.0/300").IsValid());
192+
BOOST_CHECK(LookupSubNet("1:2:3:4:5:6:7:8/0").IsValid());
193+
BOOST_CHECK(LookupSubNet("1:2:3:4:5:6:7:8/33").IsValid());
194+
BOOST_CHECK(!LookupSubNet("1:2:3:4:5:6:7:8/-1").IsValid());
195+
BOOST_CHECK(LookupSubNet("1:2:3:4:5:6:7:8/128").IsValid());
196+
BOOST_CHECK(!LookupSubNet("1:2:3:4:5:6:7:8/129").IsValid());
197+
BOOST_CHECK(!LookupSubNet("fuzzy").IsValid());
205198

206199
//CNetAddr constructor test
207200
BOOST_CHECK(CSubNet(ResolveIP("127.0.0.1")).IsValid());
@@ -247,85 +240,85 @@ BOOST_AUTO_TEST_CASE(subnet_test)
247240
BOOST_CHECK(!CSubNet(tor_addr, 200).IsValid());
248241
BOOST_CHECK(!CSubNet(tor_addr, ResolveIP("255.0.0.0")).IsValid());
249242

250-
subnet = ResolveSubNet("1.2.3.4/255.255.255.255");
243+
subnet = LookupSubNet("1.2.3.4/255.255.255.255");
251244
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.3.4/32");
252-
subnet = ResolveSubNet("1.2.3.4/255.255.255.254");
245+
subnet = LookupSubNet("1.2.3.4/255.255.255.254");
253246
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.3.4/31");
254-
subnet = ResolveSubNet("1.2.3.4/255.255.255.252");
247+
subnet = LookupSubNet("1.2.3.4/255.255.255.252");
255248
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.3.4/30");
256-
subnet = ResolveSubNet("1.2.3.4/255.255.255.248");
249+
subnet = LookupSubNet("1.2.3.4/255.255.255.248");
257250
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.3.0/29");
258-
subnet = ResolveSubNet("1.2.3.4/255.255.255.240");
251+
subnet = LookupSubNet("1.2.3.4/255.255.255.240");
259252
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.3.0/28");
260-
subnet = ResolveSubNet("1.2.3.4/255.255.255.224");
253+
subnet = LookupSubNet("1.2.3.4/255.255.255.224");
261254
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.3.0/27");
262-
subnet = ResolveSubNet("1.2.3.4/255.255.255.192");
255+
subnet = LookupSubNet("1.2.3.4/255.255.255.192");
263256
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.3.0/26");
264-
subnet = ResolveSubNet("1.2.3.4/255.255.255.128");
257+
subnet = LookupSubNet("1.2.3.4/255.255.255.128");
265258
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.3.0/25");
266-
subnet = ResolveSubNet("1.2.3.4/255.255.255.0");
259+
subnet = LookupSubNet("1.2.3.4/255.255.255.0");
267260
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.3.0/24");
268-
subnet = ResolveSubNet("1.2.3.4/255.255.254.0");
261+
subnet = LookupSubNet("1.2.3.4/255.255.254.0");
269262
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.2.0/23");
270-
subnet = ResolveSubNet("1.2.3.4/255.255.252.0");
263+
subnet = LookupSubNet("1.2.3.4/255.255.252.0");
271264
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.0.0/22");
272-
subnet = ResolveSubNet("1.2.3.4/255.255.248.0");
265+
subnet = LookupSubNet("1.2.3.4/255.255.248.0");
273266
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.0.0/21");
274-
subnet = ResolveSubNet("1.2.3.4/255.255.240.0");
267+
subnet = LookupSubNet("1.2.3.4/255.255.240.0");
275268
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.0.0/20");
276-
subnet = ResolveSubNet("1.2.3.4/255.255.224.0");
269+
subnet = LookupSubNet("1.2.3.4/255.255.224.0");
277270
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.0.0/19");
278-
subnet = ResolveSubNet("1.2.3.4/255.255.192.0");
271+
subnet = LookupSubNet("1.2.3.4/255.255.192.0");
279272
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.0.0/18");
280-
subnet = ResolveSubNet("1.2.3.4/255.255.128.0");
273+
subnet = LookupSubNet("1.2.3.4/255.255.128.0");
281274
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.0.0/17");
282-
subnet = ResolveSubNet("1.2.3.4/255.255.0.0");
275+
subnet = LookupSubNet("1.2.3.4/255.255.0.0");
283276
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.0.0/16");
284-
subnet = ResolveSubNet("1.2.3.4/255.254.0.0");
277+
subnet = LookupSubNet("1.2.3.4/255.254.0.0");
285278
BOOST_CHECK_EQUAL(subnet.ToString(), "1.2.0.0/15");
286-
subnet = ResolveSubNet("1.2.3.4/255.252.0.0");
279+
subnet = LookupSubNet("1.2.3.4/255.252.0.0");
287280
BOOST_CHECK_EQUAL(subnet.ToString(), "1.0.0.0/14");
288-
subnet = ResolveSubNet("1.2.3.4/255.248.0.0");
281+
subnet = LookupSubNet("1.2.3.4/255.248.0.0");
289282
BOOST_CHECK_EQUAL(subnet.ToString(), "1.0.0.0/13");
290-
subnet = ResolveSubNet("1.2.3.4/255.240.0.0");
283+
subnet = LookupSubNet("1.2.3.4/255.240.0.0");
291284
BOOST_CHECK_EQUAL(subnet.ToString(), "1.0.0.0/12");
292-
subnet = ResolveSubNet("1.2.3.4/255.224.0.0");
285+
subnet = LookupSubNet("1.2.3.4/255.224.0.0");
293286
BOOST_CHECK_EQUAL(subnet.ToString(), "1.0.0.0/11");
294-
subnet = ResolveSubNet("1.2.3.4/255.192.0.0");
287+
subnet = LookupSubNet("1.2.3.4/255.192.0.0");
295288
BOOST_CHECK_EQUAL(subnet.ToString(), "1.0.0.0/10");
296-
subnet = ResolveSubNet("1.2.3.4/255.128.0.0");
289+
subnet = LookupSubNet("1.2.3.4/255.128.0.0");
297290
BOOST_CHECK_EQUAL(subnet.ToString(), "1.0.0.0/9");
298-
subnet = ResolveSubNet("1.2.3.4/255.0.0.0");
291+
subnet = LookupSubNet("1.2.3.4/255.0.0.0");
299292
BOOST_CHECK_EQUAL(subnet.ToString(), "1.0.0.0/8");
300-
subnet = ResolveSubNet("1.2.3.4/254.0.0.0");
293+
subnet = LookupSubNet("1.2.3.4/254.0.0.0");
301294
BOOST_CHECK_EQUAL(subnet.ToString(), "0.0.0.0/7");
302-
subnet = ResolveSubNet("1.2.3.4/252.0.0.0");
295+
subnet = LookupSubNet("1.2.3.4/252.0.0.0");
303296
BOOST_CHECK_EQUAL(subnet.ToString(), "0.0.0.0/6");
304-
subnet = ResolveSubNet("1.2.3.4/248.0.0.0");
297+
subnet = LookupSubNet("1.2.3.4/248.0.0.0");
305298
BOOST_CHECK_EQUAL(subnet.ToString(), "0.0.0.0/5");
306-
subnet = ResolveSubNet("1.2.3.4/240.0.0.0");
299+
subnet = LookupSubNet("1.2.3.4/240.0.0.0");
307300
BOOST_CHECK_EQUAL(subnet.ToString(), "0.0.0.0/4");
308-
subnet = ResolveSubNet("1.2.3.4/224.0.0.0");
301+
subnet = LookupSubNet("1.2.3.4/224.0.0.0");
309302
BOOST_CHECK_EQUAL(subnet.ToString(), "0.0.0.0/3");
310-
subnet = ResolveSubNet("1.2.3.4/192.0.0.0");
303+
subnet = LookupSubNet("1.2.3.4/192.0.0.0");
311304
BOOST_CHECK_EQUAL(subnet.ToString(), "0.0.0.0/2");
312-
subnet = ResolveSubNet("1.2.3.4/128.0.0.0");
305+
subnet = LookupSubNet("1.2.3.4/128.0.0.0");
313306
BOOST_CHECK_EQUAL(subnet.ToString(), "0.0.0.0/1");
314-
subnet = ResolveSubNet("1.2.3.4/0.0.0.0");
307+
subnet = LookupSubNet("1.2.3.4/0.0.0.0");
315308
BOOST_CHECK_EQUAL(subnet.ToString(), "0.0.0.0/0");
316309

317-
subnet = ResolveSubNet("1:2:3:4:5:6:7:8/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff");
310+
subnet = LookupSubNet("1:2:3:4:5:6:7:8/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff");
318311
BOOST_CHECK_EQUAL(subnet.ToString(), "1:2:3:4:5:6:7:8/128");
319-
subnet = ResolveSubNet("1:2:3:4:5:6:7:8/ffff:0000:0000:0000:0000:0000:0000:0000");
312+
subnet = LookupSubNet("1:2:3:4:5:6:7:8/ffff:0000:0000:0000:0000:0000:0000:0000");
320313
BOOST_CHECK_EQUAL(subnet.ToString(), "1::/16");
321-
subnet = ResolveSubNet("1:2:3:4:5:6:7:8/0000:0000:0000:0000:0000:0000:0000:0000");
314+
subnet = LookupSubNet("1:2:3:4:5:6:7:8/0000:0000:0000:0000:0000:0000:0000:0000");
322315
BOOST_CHECK_EQUAL(subnet.ToString(), "::/0");
323316
// Invalid netmasks (with 1-bits after 0-bits)
324-
subnet = ResolveSubNet("1.2.3.4/255.255.232.0");
317+
subnet = LookupSubNet("1.2.3.4/255.255.232.0");
325318
BOOST_CHECK(!subnet.IsValid());
326-
subnet = ResolveSubNet("1.2.3.4/255.0.255.255");
319+
subnet = LookupSubNet("1.2.3.4/255.0.255.255");
327320
BOOST_CHECK(!subnet.IsValid());
328-
subnet = ResolveSubNet("1:2:3:4:5:6:7:8/ffff:ffff:ffff:fffe:ffff:ffff:ffff:ff0f");
321+
subnet = LookupSubNet("1:2:3:4:5:6:7:8/ffff:ffff:ffff:fffe:ffff:ffff:ffff:ff0f");
329322
BOOST_CHECK(!subnet.IsValid());
330323
}
331324

@@ -479,15 +472,15 @@ BOOST_AUTO_TEST_CASE(netbase_dont_resolve_strings_with_embedded_nul_characters)
479472
BOOST_CHECK(!LookupHost("127.0.0.1\0"s, false).has_value());
480473
BOOST_CHECK(!LookupHost("127.0.0.1\0example.com"s, false).has_value());
481474
BOOST_CHECK(!LookupHost("127.0.0.1\0example.com\0"s, false).has_value());
482-
CSubNet ret;
483-
BOOST_CHECK(LookupSubNet("1.2.3.0/24"s, ret));
484-
BOOST_CHECK(!LookupSubNet("1.2.3.0/24\0"s, ret));
485-
BOOST_CHECK(!LookupSubNet("1.2.3.0/24\0example.com"s, ret));
486-
BOOST_CHECK(!LookupSubNet("1.2.3.0/24\0example.com\0"s, ret));
487-
BOOST_CHECK(LookupSubNet("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion"s, ret));
488-
BOOST_CHECK(!LookupSubNet("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion\0"s, ret));
489-
BOOST_CHECK(!LookupSubNet("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion\0example.com"s, ret));
490-
BOOST_CHECK(!LookupSubNet("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion\0example.com\0"s, ret));
475+
476+
BOOST_CHECK(LookupSubNet("1.2.3.0/24"s).IsValid());
477+
BOOST_CHECK(!LookupSubNet("1.2.3.0/24\0"s).IsValid());
478+
BOOST_CHECK(!LookupSubNet("1.2.3.0/24\0example.com"s).IsValid());
479+
BOOST_CHECK(!LookupSubNet("1.2.3.0/24\0example.com\0"s).IsValid());
480+
BOOST_CHECK(LookupSubNet("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion"s).IsValid());
481+
BOOST_CHECK(!LookupSubNet("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion\0"s).IsValid());
482+
BOOST_CHECK(!LookupSubNet("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion\0example.com"s).IsValid());
483+
BOOST_CHECK(!LookupSubNet("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion\0example.com\0"s).IsValid());
491484
}
492485

493486
// Since CNetAddr (un)ser is tested separately in net_tests.cpp here we only

0 commit comments

Comments
 (0)