Skip to content

Commit b638e05

Browse files
committed
tweak ip ranges impl
Signed-off-by: neo <1100909+neowu@users.noreply.github.com>
1 parent 6eeab3a commit b638e05

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

core-ng/src/main/java/core/framework/internal/web/http/IPv4Ranges.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,15 @@ public IPv4Ranges(List<String> cidrs) {
6666
int[][] ranges = new int[cidrs.size()][];
6767
int index = 0;
6868
for (String cidr : cidrs) {
69-
int[] range = comparableIPRanges(cidr);
69+
int[] range = sortableRange(cidr);
7070
ranges[index++] = range;
7171
}
7272
this.ranges = mergeRanges(ranges);
7373
}
7474

75-
private int[] comparableIPRanges(String cidr) {
75+
private int[] sortableRange(String cidr) {
7676
int index = cidr.indexOf('/');
7777
if (index <= 0 || index >= cidr.length() - 1) throw new Error("invalid cidr, value=" + cidr);
78-
int address = toInt(address(cidr.substring(0, index)));
7978
int maskBits = Integer.parseInt(cidr.substring(index + 1));
8079

8180
int rangeStart;
@@ -88,6 +87,7 @@ private int[] comparableIPRanges(String cidr) {
8887
rangeStart = 0;
8988
rangeEnd = -1;
9089
} else {
90+
int address = toInt(address(cidr.substring(0, index)));
9191
int mask = -1 << (32 - maskBits);
9292
rangeStart = address & mask;
9393
rangeEnd = rangeStart + ~mask;
@@ -107,8 +107,8 @@ private int toInt(byte[] address) {
107107

108108
public boolean matches(byte[] address) {
109109
if (ranges.length == 0) return false;
110-
int comparableIP = toSortable(toInt(address));
111-
return withinRanges(ranges, comparableIP);
110+
int sortable = toSortable(toInt(address));
111+
return withinRanges(ranges, sortable);
112112
}
113113

114114
// with address ^ MIN_VALUE, it converts binary presentation to sortable number form (due to java doesn't have unsigned number type)

core-ng/src/main/java/core/framework/internal/web/http/IPv6Ranges.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,13 @@ public IPv6Ranges(List<String> cidrs) {
8080
LongLong[][] ranges = new LongLong[cidrs.size()][];
8181
int index = 0;
8282
for (String cidr : cidrs) {
83-
LongLong[] range = comparableIPRanges(cidr);
83+
LongLong[] range = sortableRange(cidr);
8484
ranges[index++] = range;
8585
}
8686
this.ranges = mergeRanges(ranges);
8787
}
8888

89-
private LongLong[] comparableIPRanges(String cidr) {
89+
private LongLong[] sortableRange(String cidr) {
9090
int index = cidr.indexOf('/');
9191
if (index <= 0 || index >= cidr.length() - 1) throw new Error("invalid cidr, value=" + cidr);
9292
LongLong address = toLongLong(IPv4Ranges.address(cidr.substring(0, index)));
@@ -114,8 +114,8 @@ public boolean matches(byte[] address) {
114114
if (ranges.length == 0) return false;
115115
if (address.length != 16) return false;
116116

117-
LongLong comparableIP = toLongLong(address).toSortable();
118-
return withinRanges(ranges, comparableIP);
117+
LongLong sortable = toLongLong(address).toSortable();
118+
return withinRanges(ranges, sortable);
119119
}
120120

121121
// high,low are used to represent a 128-bit IPv6 address as two 64-bit long values

core-ng/src/test/java/core/framework/internal/web/http/IPv6RangesTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ void matches() {
4242
}
4343

4444
@Test
45-
void matchesMultipleRanges() {
45+
void matchesWithMultipleRanges() {
4646
var ranges = new IPv6Ranges(List.of("2001:db8::/32", "2001:db9::/32", "2001:dba::/32"));
4747
assertTrue(ranges.matches(address("2001:db8::1")));
4848
assertTrue(ranges.matches(address("2001:db9::1")));

0 commit comments

Comments
 (0)