Skip to content

Commit 8c18e16

Browse files
committed
Simplify error handling
1 parent 077e32d commit 8c18e16

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

traverse.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ func (r *Reader) NetworksWithin(prefix netip.Prefix, options ...NetworksOption)
8787
prefix, err := netIP.Prefix(bit)
8888
if err != nil {
8989
yield(Result{
90-
err: fmt.Errorf("prefixing %s with %d", netIP, bit),
90+
ip: ip,
91+
prefixLen: uint8(bit),
92+
err: fmt.Errorf("prefixing %s with %d", netIP, bit),
9193
})
9294
}
9395

@@ -133,18 +135,19 @@ func (r *Reader) NetworksWithin(prefix netip.Prefix, options ...NetworksOption)
133135
ipRight := node.ip.As16()
134136
if len(ipRight) <= int(node.bit>>3) {
135137
displayAddr := node.ip
136-
displayBits := node.bit
137138
if isInIPv4Subtree(node.ip) {
138139
displayAddr = v6ToV4(displayAddr)
139-
displayBits -= 96
140140
}
141141

142-
yield(Result{
142+
res := Result{
143143
ip: displayAddr,
144144
prefixLen: uint8(node.bit),
145-
err: newInvalidDatabaseError(
146-
"invalid search tree at %s/%d", displayAddr, displayBits),
147-
})
145+
}
146+
res.err = newInvalidDatabaseError(
147+
"invalid search tree at %s", res.Network())
148+
149+
yield(res)
150+
148151
return
149152
}
150153
ipRight[node.bit>>3] |= 1 << (7 - (node.bit % 8))

0 commit comments

Comments
 (0)