diff options
| author | neingeist <[email protected]> | 2022-06-24 00:35:08 +0200 |
|---|---|---|
| committer | neingeist <[email protected]> | 2022-06-24 14:07:29 +0200 |
| commit | d774220311b2d44c770e7431ec663c8875488a1e (patch) | |
| tree | 1645e8ebc353ac933316dc272c766edbc9d2cf4a /addr.go | |
| parent | 44eb5ea262e64fe2d564c7888c9bc5999e43e927 (diff) | |
🐛 Fix restricting address family when watching for changes
Diffstat (limited to 'addr.go')
| -rw-r--r-- | addr.go | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -7,12 +7,14 @@ import ( "net" "github.com/vishvananda/netlink" + "github.com/vishvananda/netlink/nl" ) type AddrSet struct { linkAttrs netlink.LinkAttrs linkChan chan netlink.LinkUpdate addrChan chan netlink.AddrUpdate + family Family addrs map[string]net.IP } @@ -37,6 +39,7 @@ func InterfaceAddrs(iface string, family Family) (*AddrSet, error) { return nil, fmt.Errorf("netlink.LinkByName %v: %v", iface, err) } else { addrs.linkAttrs = *link.Attrs() + addrs.family = family } // list @@ -91,6 +94,11 @@ func (addrs *AddrSet) Read() error { continue } + addrUpdateFamily := Family(nl.GetIPFamily(addrUpdate.LinkAddress.IP)) + if addrs.family != netlink.FAMILY_ALL && addrUpdateFamily != addrs.family { + continue + } + // XXX: scope and other filters? addrs.updateAddr(netlink.Addr{ IPNet: &addrUpdate.LinkAddress, |
