diff options
| author | Loyalsoldier <[email protected]> | 2024-10-25 07:24:30 +0800 |
|---|---|---|
| committer | Loyalsoldier <[email protected]> | 2024-10-25 07:48:14 +0800 |
| commit | 38dfd08332dda5809191bc54ef06b781b1d81e44 (patch) | |
| tree | 7a673c45c0789fb626abbd556dac4f402057fa0b /lib | |
| parent | 87404b7cbcdaa441ed812434852c8aef5c7a5405 (diff) | |
Refine: make lookup command more specific
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/container.go | 50 |
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()) } } } |
