From: Damien Neil Date: Sat, 2 Oct 2021 00:45:09 +0000 (-0700) Subject: net: don't use syscall.NET_RT_IFLISTL on FreeBSD X-Git-Tag: go1.18beta1~1083 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a7fe161ccceb330cd1f19cd103a61f8deacbbdc3;p=gostls13.git net: don't use syscall.NET_RT_IFLISTL on FreeBSD The golang.org/x/net/route package can't parse the RIB returned by NET_RT_IFLISTL. Use the route.RIBTypeInterface constant instead, leaving the choice of syscall up to the route package. Fixes #48553. Change-Id: Ida4bd6e332c0dc6dc871d3a93cfb56c0fbc93e1b Reviewed-on: https://go-review.googlesource.com/c/go/+/353611 Trust: Damien Neil Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Go Bot --- diff --git a/src/net/interface_freebsd.go b/src/net/interface_freebsd.go index 2b51fcb632..8536bd3cf6 100644 --- a/src/net/interface_freebsd.go +++ b/src/net/interface_freebsd.go @@ -11,16 +11,11 @@ import ( ) func interfaceMessages(ifindex int) ([]route.Message, error) { - typ := route.RIBType(syscall.NET_RT_IFLISTL) - rib, err := route.FetchRIB(syscall.AF_UNSPEC, typ, ifindex) + rib, err := route.FetchRIB(syscall.AF_UNSPEC, route.RIBTypeInterface, ifindex) if err != nil { - typ = route.RIBType(syscall.NET_RT_IFLIST) - rib, err = route.FetchRIB(syscall.AF_UNSPEC, typ, ifindex) - if err != nil { - return nil, err - } + return nil, err } - return route.ParseRIB(typ, rib) + return route.ParseRIB(route.RIBTypeInterface, rib) } // interfaceMulticastAddrTable returns addresses for a specific