Skip to content

Commit 9252f58

Browse files
committed
device: simplify allowedips lookup signature
The inliner should handle this for us. Signed-off-by: Jason A. Donenfeld <[email protected]>
1 parent 79a0dd6 commit 9252f58

File tree

5 files changed

+18
-17
lines changed

5 files changed

+18
-17
lines changed

device/allowedips.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -285,14 +285,15 @@ func (table *AllowedIPs) Insert(ip net.IP, cidr uint8, peer *Peer) {
285285
}
286286
}
287287

288-
func (table *AllowedIPs) LookupIPv4(address []byte) *Peer {
288+
func (table *AllowedIPs) Lookup(address []byte) *Peer {
289289
table.mutex.RLock()
290290
defer table.mutex.RUnlock()
291-
return table.IPv4.lookup(address)
292-
}
293-
294-
func (table *AllowedIPs) LookupIPv6(address []byte) *Peer {
295-
table.mutex.RLock()
296-
defer table.mutex.RUnlock()
297-
return table.IPv6.lookup(address)
291+
switch len(address) {
292+
case net.IPv6len:
293+
return table.IPv6.lookup(address)
294+
case net.IPv4len:
295+
return table.IPv4.lookup(address)
296+
default:
297+
panic(errors.New("looking up unknown address type"))
298+
}
298299
}

device/allowedips_rand_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,15 +109,15 @@ func TestTrieRandom(t *testing.T) {
109109
var addr4 [4]byte
110110
rand.Read(addr4[:])
111111
peer1 := slow4.Lookup(addr4[:])
112-
peer2 := allowedIPs.LookupIPv4(addr4[:])
112+
peer2 := allowedIPs.Lookup(addr4[:])
113113
if peer1 != peer2 {
114114
t.Errorf("Trie did not match naive implementation, for %v: want %p, got %p", net.IP(addr4[:]), peer1, peer2)
115115
}
116116

117117
var addr6 [16]byte
118118
rand.Read(addr6[:])
119119
peer1 = slow6.Lookup(addr6[:])
120-
peer2 = allowedIPs.LookupIPv6(addr6[:])
120+
peer2 = allowedIPs.Lookup(addr6[:])
121121
if peer1 != peer2 {
122122
t.Errorf("Trie did not match naive implementation, for %v: want %p, got %p", net.IP(addr6[:]), peer1, peer2)
123123
}

device/allowedips_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,14 @@ func TestTrieIPv4(t *testing.T) {
102102
}
103103

104104
assertEQ := func(peer *Peer, a, b, c, d byte) {
105-
p := allowedIPs.LookupIPv4([]byte{a, b, c, d})
105+
p := allowedIPs.Lookup([]byte{a, b, c, d})
106106
if p != peer {
107107
t.Error("Assert EQ failed")
108108
}
109109
}
110110

111111
assertNEQ := func(peer *Peer, a, b, c, d byte) {
112-
p := allowedIPs.LookupIPv4([]byte{a, b, c, d})
112+
p := allowedIPs.Lookup([]byte{a, b, c, d})
113113
if p == peer {
114114
t.Error("Assert NEQ failed")
115115
}
@@ -208,7 +208,7 @@ func TestTrieIPv6(t *testing.T) {
208208
addr = append(addr, expand(b)...)
209209
addr = append(addr, expand(c)...)
210210
addr = append(addr, expand(d)...)
211-
p := allowedIPs.LookupIPv6(addr)
211+
p := allowedIPs.Lookup(addr)
212212
if p != peer {
213213
t.Error("Assert EQ failed")
214214
}

device/receive.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ func (peer *Peer) RoutineSequentialReceiver() {
447447
}
448448
elem.packet = elem.packet[:length]
449449
src := elem.packet[IPv4offsetSrc : IPv4offsetSrc+net.IPv4len]
450-
if device.allowedips.LookupIPv4(src) != peer {
450+
if device.allowedips.Lookup(src) != peer {
451451
device.log.Verbosef("IPv4 packet with disallowed source address from %v", peer)
452452
goto skip
453453
}
@@ -464,7 +464,7 @@ func (peer *Peer) RoutineSequentialReceiver() {
464464
}
465465
elem.packet = elem.packet[:length]
466466
src := elem.packet[IPv6offsetSrc : IPv6offsetSrc+net.IPv6len]
467-
if device.allowedips.LookupIPv6(src) != peer {
467+
if device.allowedips.Lookup(src) != peer {
468468
device.log.Verbosef("IPv6 packet with disallowed source address from %v", peer)
469469
goto skip
470470
}

device/send.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,14 +254,14 @@ func (device *Device) RoutineReadFromTUN() {
254254
continue
255255
}
256256
dst := elem.packet[IPv4offsetDst : IPv4offsetDst+net.IPv4len]
257-
peer = device.allowedips.LookupIPv4(dst)
257+
peer = device.allowedips.Lookup(dst)
258258

259259
case ipv6.Version:
260260
if len(elem.packet) < ipv6.HeaderLen {
261261
continue
262262
}
263263
dst := elem.packet[IPv6offsetDst : IPv6offsetDst+net.IPv6len]
264-
peer = device.allowedips.LookupIPv6(dst)
264+
peer = device.allowedips.Lookup(dst)
265265

266266
default:
267267
device.log.Verbosef("Received packet with unknown IP version")

0 commit comments

Comments
 (0)