summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLoyalsoldier <[email protected]>2024-10-25 07:24:30 +0800
committerLoyalsoldier <[email protected]>2024-10-25 07:48:14 +0800
commit38dfd08332dda5809191bc54ef06b781b1d81e44 (patch)
tree7a673c45c0789fb626abbd556dac4f402057fa0b /lib
parent87404b7cbcdaa441ed812434852c8aef5c7a5405 (diff)
Refine: make lookup command more specific
Diffstat (limited to 'lib')
-rw-r--r--lib/container.go50
1 files changed, 19 insertions, 31 deletions
diff --git a/lib/container.go b/lib/container.go
index 3ecb5b0e..b08cbc13 100644
--- a/lib/container.go
+++ b/lib/container.go
@@ -232,41 +232,29 @@ func (c *container) lookup(addrOrPrefix any, iptype IPType, searchList ...string
continue
}
+ var ipset *netipx.IPSet
+ var err error
switch iptype {
case IPv4:
- ipset, err := entry.GetIPv4Set()
- if err != nil {
- return nil, false, err
- }
- switch addrOrPrefix := addrOrPrefix.(type) {
- case netip.Prefix:
- if found := ipset.ContainsPrefix(addrOrPrefix); found {
- isfound = true
- result = append(result, entry.GetName())
- }
- case netip.Addr:
- if found := ipset.Contains(addrOrPrefix); found {
- isfound = true
- result = append(result, entry.GetName())
- }
- }
-
+ ipset, err = entry.GetIPv4Set()
case IPv6:
- ipset, err := entry.GetIPv6Set()
- if err != nil {
- return nil, false, err
+ ipset, err = entry.GetIPv6Set()
+ }
+
+ if err != nil {
+ return nil, false, err
+ }
+
+ switch addrOrPrefix := addrOrPrefix.(type) {
+ case netip.Prefix:
+ if found := ipset.ContainsPrefix(addrOrPrefix); found {
+ isfound = true
+ result = append(result, entry.GetName())
}
- switch addrOrPrefix := addrOrPrefix.(type) {
- case netip.Prefix:
- if found := ipset.ContainsPrefix(addrOrPrefix); found {
- isfound = true
- result = append(result, entry.GetName())
- }
- case netip.Addr:
- if found := ipset.Contains(addrOrPrefix); found {
- isfound = true
- result = append(result, entry.GetName())
- }
+ case netip.Addr:
+ if found := ipset.Contains(addrOrPrefix); found {
+ isfound = true
+ result = append(result, entry.GetName())
}
}
}