Skip to content

Commit 7751f2a

Browse files
committed
libtailscale: fix regression in interface address enumeration
Fix regression introduced in 9c933a0. Fixes tailscale/tailscale#16836 Signed-off-by: James Tucker <[email protected]>
1 parent 11869b0 commit 7751f2a

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

libtailscale/net.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,20 @@ func (a *App) getInterfaces() ([]netmon.Interface, error) {
101101

102102
addrs := strings.Trim(fields[1], " \n")
103103
for _, addr := range strings.Split(addrs, " ") {
104-
_, ipnet, err := net.ParseCIDR(addr)
104+
pfx, err := netip.ParsePrefix(addr)
105+
var ip net.IP
106+
if pfx.Addr().Is4() {
107+
v4 := pfx.Addr().As4()
108+
ip = net.IP(v4[:])
109+
} else {
110+
v6 := pfx.Addr().As16()
111+
ip = net.IP(v6[:])
112+
}
105113
if err == nil {
106-
newIf.AltAddrs = append(newIf.AltAddrs, ipnet)
114+
newIf.AltAddrs = append(newIf.AltAddrs, &net.IPAddr{
115+
IP: ip,
116+
Zone: pfx.Addr().Zone(),
117+
})
107118
}
108119
}
109120

0 commit comments

Comments
 (0)