Skip to content

Commit 98c4e86

Browse files
authored
Merge pull request #1682 from opentensor/allow-ip-as-0
Allow axon ip as 0
2 parents 0df94a2 + 48519ac commit 98c4e86

File tree

2 files changed

+56
-22
lines changed

2 files changed

+56
-22
lines changed

pallets/subtensor/src/subnets/serving.rs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ impl<T: Config> Pallet<T> {
172172
// Check the ip signature validity.
173173
ensure!(Self::is_valid_ip_type(ip_type), Error::<T>::InvalidIpType);
174174
ensure!(
175-
Self::is_valid_ip_address(ip_type, ip),
175+
Self::is_valid_ip_address(ip_type, ip, false),
176176
Error::<T>::InvalidIpAddress
177177
);
178178

@@ -276,17 +276,11 @@ impl<T: Config> Pallet<T> {
276276
}
277277

278278
// @todo (Parallax 2-1-2021) : Implement exclusion of private IP ranges
279-
pub fn is_valid_ip_address(ip_type: u8, addr: u128) -> bool {
280-
if !Self::is_valid_ip_type(ip_type) {
281-
return false;
282-
}
283-
if addr == 0 {
279+
pub fn is_valid_ip_address(ip_type: u8, addr: u128, allow_zero: bool) -> bool {
280+
if !allow_zero && addr == 0 {
284281
return false;
285282
}
286283
if ip_type == 4 {
287-
if addr == 0 {
288-
return false;
289-
}
290284
if addr >= u32::MAX as u128 {
291285
return false;
292286
}
@@ -295,9 +289,6 @@ impl<T: Config> Pallet<T> {
295289
} // Localhost
296290
}
297291
if ip_type == 6 {
298-
if addr == 0x0 {
299-
return false;
300-
}
301292
if addr == u128::MAX {
302293
return false;
303294
}
@@ -346,7 +337,8 @@ impl<T: Config> Pallet<T> {
346337
// Check the ip signature validity.
347338
ensure!(Self::is_valid_ip_type(ip_type), Error::<T>::InvalidIpType);
348339
ensure!(
349-
Self::is_valid_ip_address(ip_type, ip),
340+
// allow axon to be served with a zero ip address for testing purposes
341+
Self::is_valid_ip_address(ip_type, ip, true),
350342
Error::<T>::InvalidIpAddress
351343
);
352344

pallets/subtensor/src/tests/serving.rs

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,14 @@ fn test_serving_is_valid_ip_address_ipv4() {
555555
new_test_ext(1).execute_with(|| {
556556
assert!(SubtensorModule::is_valid_ip_address(
557557
4,
558-
test::ipv4(8, 8, 8, 8)
558+
test::ipv4(8, 8, 8, 8),
559+
false
560+
));
561+
562+
assert!(SubtensorModule::is_valid_ip_address(
563+
4,
564+
test::ipv4(0, 0, 0, 0),
565+
true
559566
));
560567
});
561568
}
@@ -565,11 +572,18 @@ fn test_serving_is_valid_ip_address_ipv6() {
565572
new_test_ext(1).execute_with(|| {
566573
assert!(SubtensorModule::is_valid_ip_address(
567574
6,
568-
test::ipv6(1, 2, 3, 4, 5, 6, 7, 8)
575+
test::ipv6(1, 2, 3, 4, 5, 6, 7, 8),
576+
false
577+
));
578+
assert!(SubtensorModule::is_valid_ip_address(
579+
6,
580+
test::ipv6(1, 2, 3, 4, 5, 6, 7, 8),
581+
false
569582
));
570583
assert!(SubtensorModule::is_valid_ip_address(
571584
6,
572-
test::ipv6(1, 2, 3, 4, 5, 6, 7, 8)
585+
test::ipv6(0, 0, 0, 0, 0, 0, 0, 0),
586+
true
573587
));
574588
});
575589
}
@@ -579,19 +593,38 @@ fn test_serving_is_invalid_ipv4_address() {
579593
new_test_ext(1).execute_with(|| {
580594
assert!(!SubtensorModule::is_valid_ip_address(
581595
4,
582-
test::ipv4(0, 0, 0, 0)
596+
test::ipv4(0, 0, 0, 0),
597+
false
598+
));
599+
assert!(!SubtensorModule::is_valid_ip_address(
600+
4,
601+
test::ipv4(255, 255, 255, 255),
602+
false
583603
));
584604
assert!(!SubtensorModule::is_valid_ip_address(
585605
4,
586-
test::ipv4(255, 255, 255, 255)
606+
test::ipv4(127, 0, 0, 1),
607+
false
587608
));
588609
assert!(!SubtensorModule::is_valid_ip_address(
589610
4,
590-
test::ipv4(127, 0, 0, 1)
611+
test::ipv6(0xffff, 2, 3, 4, 5, 6, 7, 8),
612+
false
591613
));
592614
assert!(!SubtensorModule::is_valid_ip_address(
593615
4,
594-
test::ipv6(0xffff, 2, 3, 4, 5, 6, 7, 8)
616+
test::ipv4(255, 255, 255, 255),
617+
true
618+
));
619+
assert!(!SubtensorModule::is_valid_ip_address(
620+
4,
621+
test::ipv4(127, 0, 0, 1),
622+
true
623+
));
624+
assert!(!SubtensorModule::is_valid_ip_address(
625+
4,
626+
test::ipv6(0xffff, 2, 3, 4, 5, 6, 7, 8),
627+
true
595628
));
596629
});
597630
}
@@ -601,13 +634,22 @@ fn test_serving_is_invalid_ipv6_address() {
601634
new_test_ext(1).execute_with(|| {
602635
assert!(!SubtensorModule::is_valid_ip_address(
603636
6,
604-
test::ipv6(0, 0, 0, 0, 0, 0, 0, 0)
637+
test::ipv6(0, 0, 0, 0, 0, 0, 0, 0),
638+
false
605639
));
606640
assert!(!SubtensorModule::is_valid_ip_address(
607641
4,
608642
test::ipv6(
609643
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff
610-
)
644+
),
645+
false
646+
));
647+
assert!(!SubtensorModule::is_valid_ip_address(
648+
4,
649+
test::ipv6(
650+
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff
651+
),
652+
true
611653
));
612654
});
613655
}

0 commit comments

Comments
 (0)