mirror of
https://github.com/golang/net.git
synced 2026-04-01 02:47:08 +09:00
route: drops const that x/unix has
For golang/go#54035 Change-Id: I5163bb1d562f0c7f7de16995fcb42ece894d07bf Reviewed-on: https://go-review.googlesource.com/c/net/+/419180 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@google.com> Run-TryBot: Meng Zhuo <mzh@golangcn.org> Auto-Submit: Ian Lance Taylor <iant@google.com>
This commit is contained in:
@@ -7,7 +7,11 @@
|
||||
|
||||
package route
|
||||
|
||||
import "runtime"
|
||||
import (
|
||||
"runtime"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
// An Addr represents an address associated with packet routing.
|
||||
type Addr interface {
|
||||
@@ -23,7 +27,7 @@ type LinkAddr struct {
|
||||
}
|
||||
|
||||
// Family implements the Family method of Addr interface.
|
||||
func (a *LinkAddr) Family() int { return sysAF_LINK }
|
||||
func (a *LinkAddr) Family() int { return unix.AF_LINK }
|
||||
|
||||
func (a *LinkAddr) lenAndSpace() (int, int) {
|
||||
l := 8 + len(a.Name) + len(a.Addr)
|
||||
@@ -40,7 +44,7 @@ func (a *LinkAddr) marshal(b []byte) (int, error) {
|
||||
return 0, errInvalidAddr
|
||||
}
|
||||
b[0] = byte(l)
|
||||
b[1] = sysAF_LINK
|
||||
b[1] = unix.AF_LINK
|
||||
if a.Index > 0 {
|
||||
nativeEndian.PutUint16(b[2:4], uint16(a.Index))
|
||||
}
|
||||
@@ -62,7 +66,7 @@ func parseLinkAddr(b []byte) (Addr, error) {
|
||||
if len(b) < 8 {
|
||||
return nil, errInvalidAddr
|
||||
}
|
||||
_, a, err := parseKernelLinkAddr(sysAF_LINK, b[4:])
|
||||
_, a, err := parseKernelLinkAddr(unix.AF_LINK, b[4:])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -122,7 +126,7 @@ type Inet4Addr struct {
|
||||
}
|
||||
|
||||
// Family implements the Family method of Addr interface.
|
||||
func (a *Inet4Addr) Family() int { return sysAF_INET }
|
||||
func (a *Inet4Addr) Family() int { return unix.AF_INET }
|
||||
|
||||
func (a *Inet4Addr) lenAndSpace() (int, int) {
|
||||
return sizeofSockaddrInet, roundup(sizeofSockaddrInet)
|
||||
@@ -134,7 +138,7 @@ func (a *Inet4Addr) marshal(b []byte) (int, error) {
|
||||
return 0, errShortBuffer
|
||||
}
|
||||
b[0] = byte(l)
|
||||
b[1] = sysAF_INET
|
||||
b[1] = unix.AF_INET
|
||||
copy(b[4:8], a.IP[:])
|
||||
return ll, nil
|
||||
}
|
||||
@@ -146,7 +150,7 @@ type Inet6Addr struct {
|
||||
}
|
||||
|
||||
// Family implements the Family method of Addr interface.
|
||||
func (a *Inet6Addr) Family() int { return sysAF_INET6 }
|
||||
func (a *Inet6Addr) Family() int { return unix.AF_INET6 }
|
||||
|
||||
func (a *Inet6Addr) lenAndSpace() (int, int) {
|
||||
return sizeofSockaddrInet6, roundup(sizeofSockaddrInet6)
|
||||
@@ -158,7 +162,7 @@ func (a *Inet6Addr) marshal(b []byte) (int, error) {
|
||||
return 0, errShortBuffer
|
||||
}
|
||||
b[0] = byte(l)
|
||||
b[1] = sysAF_INET6
|
||||
b[1] = unix.AF_INET6
|
||||
copy(b[8:24], a.IP[:])
|
||||
if a.ZoneID > 0 {
|
||||
nativeEndian.PutUint32(b[24:28], uint32(a.ZoneID))
|
||||
@@ -169,14 +173,14 @@ func (a *Inet6Addr) marshal(b []byte) (int, error) {
|
||||
// parseInetAddr parses b as an internet address for IPv4 or IPv6.
|
||||
func parseInetAddr(af int, b []byte) (Addr, error) {
|
||||
switch af {
|
||||
case sysAF_INET:
|
||||
case unix.AF_INET:
|
||||
if len(b) < sizeofSockaddrInet {
|
||||
return nil, errInvalidAddr
|
||||
}
|
||||
a := &Inet4Addr{}
|
||||
copy(a.IP[:], b[4:8])
|
||||
return a, nil
|
||||
case sysAF_INET6:
|
||||
case unix.AF_INET6:
|
||||
if len(b) < sizeofSockaddrInet6 {
|
||||
return nil, errInvalidAddr
|
||||
}
|
||||
@@ -245,7 +249,7 @@ func parseKernelInetAddr(af int, b []byte) (int, Addr, error) {
|
||||
a := &Inet6Addr{}
|
||||
copy(a.IP[:], b[off6:off6+16])
|
||||
return int(b[0]), a, nil
|
||||
case af == sysAF_INET6:
|
||||
case af == unix.AF_INET6:
|
||||
a := &Inet6Addr{}
|
||||
if l-1 < off6 {
|
||||
copy(a.IP[:], b[1:l])
|
||||
@@ -365,15 +369,15 @@ func marshalAddrs(b []byte, as []Addr) (uint, error) {
|
||||
}
|
||||
|
||||
func parseAddrs(attrs uint, fn func(int, []byte) (int, Addr, error), b []byte) ([]Addr, error) {
|
||||
var as [sysRTAX_MAX]Addr
|
||||
af := int(sysAF_UNSPEC)
|
||||
for i := uint(0); i < sysRTAX_MAX && len(b) >= roundup(0); i++ {
|
||||
var as [unix.RTAX_MAX]Addr
|
||||
af := int(unix.AF_UNSPEC)
|
||||
for i := uint(0); i < unix.RTAX_MAX && len(b) >= roundup(0); i++ {
|
||||
if attrs&(1<<i) == 0 {
|
||||
continue
|
||||
}
|
||||
if i <= sysRTAX_BRD {
|
||||
if i <= unix.RTAX_BRD {
|
||||
switch b[1] {
|
||||
case sysAF_LINK:
|
||||
case unix.AF_LINK:
|
||||
a, err := parseLinkAddr(b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -384,7 +388,7 @@ func parseAddrs(attrs uint, fn func(int, []byte) (int, Addr, error), b []byte) (
|
||||
return nil, errMessageTooShort
|
||||
}
|
||||
b = b[l:]
|
||||
case sysAF_INET, sysAF_INET6:
|
||||
case unix.AF_INET, unix.AF_INET6:
|
||||
af = int(b[1])
|
||||
a, err := parseInetAddr(af, b)
|
||||
if err != nil {
|
||||
|
||||
@@ -7,6 +7,8 @@ package route
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
type parseAddrsOnDarwinTest struct {
|
||||
@@ -18,7 +20,7 @@ type parseAddrsOnDarwinTest struct {
|
||||
|
||||
var parseAddrsOnDarwinLittleEndianTests = []parseAddrsOnDarwinTest{
|
||||
{
|
||||
sysRTA_DST | sysRTA_GATEWAY | sysRTA_NETMASK,
|
||||
unix.RTA_DST | unix.RTA_GATEWAY | unix.RTA_NETMASK,
|
||||
parseKernelInetAddr,
|
||||
[]byte{
|
||||
0x10, 0x2, 0x0, 0x0, 0xc0, 0xa8, 0x56, 0x0,
|
||||
|
||||
@@ -10,6 +10,8 @@ package route
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
type parseAddrsTest struct {
|
||||
@@ -21,7 +23,7 @@ type parseAddrsTest struct {
|
||||
|
||||
var parseAddrsLittleEndianTests = []parseAddrsTest{
|
||||
{
|
||||
sysRTA_DST | sysRTA_GATEWAY | sysRTA_NETMASK | sysRTA_BRD,
|
||||
unix.RTA_DST | unix.RTA_GATEWAY | unix.RTA_NETMASK | unix.RTA_BRD,
|
||||
parseKernelInetAddr,
|
||||
[]byte{
|
||||
0x38, 0x12, 0x0, 0x0, 0xff, 0xff, 0xff, 0x0,
|
||||
@@ -58,7 +60,7 @@ var parseAddrsLittleEndianTests = []parseAddrsTest{
|
||||
},
|
||||
},
|
||||
{
|
||||
sysRTA_NETMASK | sysRTA_IFP | sysRTA_IFA,
|
||||
unix.RTA_NETMASK | unix.RTA_IFP | unix.RTA_IFA,
|
||||
parseKernelInetAddr,
|
||||
[]byte{
|
||||
0x7, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0x0,
|
||||
|
||||
@@ -19,83 +19,6 @@ package route
|
||||
*/
|
||||
import "C"
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = C.AF_UNSPEC
|
||||
sysAF_INET = C.AF_INET
|
||||
sysAF_ROUTE = C.AF_ROUTE
|
||||
sysAF_LINK = C.AF_LINK
|
||||
sysAF_INET6 = C.AF_INET6
|
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW
|
||||
|
||||
sysNET_RT_DUMP = C.NET_RT_DUMP
|
||||
sysNET_RT_FLAGS = C.NET_RT_FLAGS
|
||||
sysNET_RT_IFLIST = C.NET_RT_IFLIST
|
||||
sysNET_RT_STAT = C.NET_RT_STAT
|
||||
sysNET_RT_TRASH = C.NET_RT_TRASH
|
||||
sysNET_RT_IFLIST2 = C.NET_RT_IFLIST2
|
||||
sysNET_RT_DUMP2 = C.NET_RT_DUMP2
|
||||
sysNET_RT_MAXID = C.NET_RT_MAXID
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = C.CTL_MAXNAME
|
||||
|
||||
sysCTL_UNSPEC = C.CTL_UNSPEC
|
||||
sysCTL_KERN = C.CTL_KERN
|
||||
sysCTL_VM = C.CTL_VM
|
||||
sysCTL_VFS = C.CTL_VFS
|
||||
sysCTL_NET = C.CTL_NET
|
||||
sysCTL_DEBUG = C.CTL_DEBUG
|
||||
sysCTL_HW = C.CTL_HW
|
||||
sysCTL_MACHDEP = C.CTL_MACHDEP
|
||||
sysCTL_USER = C.CTL_USER
|
||||
sysCTL_MAXID = C.CTL_MAXID
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = C.RTM_VERSION
|
||||
|
||||
sysRTM_ADD = C.RTM_ADD
|
||||
sysRTM_DELETE = C.RTM_DELETE
|
||||
sysRTM_CHANGE = C.RTM_CHANGE
|
||||
sysRTM_GET = C.RTM_GET
|
||||
sysRTM_LOSING = C.RTM_LOSING
|
||||
sysRTM_REDIRECT = C.RTM_REDIRECT
|
||||
sysRTM_MISS = C.RTM_MISS
|
||||
sysRTM_LOCK = C.RTM_LOCK
|
||||
sysRTM_OLDADD = C.RTM_OLDADD
|
||||
sysRTM_OLDDEL = C.RTM_OLDDEL
|
||||
sysRTM_RESOLVE = C.RTM_RESOLVE
|
||||
sysRTM_NEWADDR = C.RTM_NEWADDR
|
||||
sysRTM_DELADDR = C.RTM_DELADDR
|
||||
sysRTM_IFINFO = C.RTM_IFINFO
|
||||
sysRTM_NEWMADDR = C.RTM_NEWMADDR
|
||||
sysRTM_DELMADDR = C.RTM_DELMADDR
|
||||
sysRTM_IFINFO2 = C.RTM_IFINFO2
|
||||
sysRTM_NEWMADDR2 = C.RTM_NEWMADDR2
|
||||
sysRTM_GET2 = C.RTM_GET2
|
||||
|
||||
sysRTA_DST = C.RTA_DST
|
||||
sysRTA_GATEWAY = C.RTA_GATEWAY
|
||||
sysRTA_NETMASK = C.RTA_NETMASK
|
||||
sysRTA_GENMASK = C.RTA_GENMASK
|
||||
sysRTA_IFP = C.RTA_IFP
|
||||
sysRTA_IFA = C.RTA_IFA
|
||||
sysRTA_AUTHOR = C.RTA_AUTHOR
|
||||
sysRTA_BRD = C.RTA_BRD
|
||||
|
||||
sysRTAX_DST = C.RTAX_DST
|
||||
sysRTAX_GATEWAY = C.RTAX_GATEWAY
|
||||
sysRTAX_NETMASK = C.RTAX_NETMASK
|
||||
sysRTAX_GENMASK = C.RTAX_GENMASK
|
||||
sysRTAX_IFP = C.RTAX_IFP
|
||||
sysRTAX_IFA = C.RTAX_IFA
|
||||
sysRTAX_AUTHOR = C.RTAX_AUTHOR
|
||||
sysRTAX_BRD = C.RTAX_BRD
|
||||
sysRTAX_MAX = C.RTAX_MAX
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrDarwin15 = C.sizeof_struct_if_msghdr
|
||||
sizeofIfaMsghdrDarwin15 = C.sizeof_struct_ifa_msghdr
|
||||
|
||||
@@ -40,84 +40,6 @@ struct ifa_msghdr_dfly58 {
|
||||
*/
|
||||
import "C"
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = C.AF_UNSPEC
|
||||
sysAF_INET = C.AF_INET
|
||||
sysAF_ROUTE = C.AF_ROUTE
|
||||
sysAF_LINK = C.AF_LINK
|
||||
sysAF_INET6 = C.AF_INET6
|
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW
|
||||
|
||||
sysNET_RT_DUMP = C.NET_RT_DUMP
|
||||
sysNET_RT_FLAGS = C.NET_RT_FLAGS
|
||||
sysNET_RT_IFLIST = C.NET_RT_IFLIST
|
||||
sysNET_RT_MAXID = C.NET_RT_MAXID
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = C.CTL_MAXNAME
|
||||
|
||||
sysCTL_UNSPEC = C.CTL_UNSPEC
|
||||
sysCTL_KERN = C.CTL_KERN
|
||||
sysCTL_VM = C.CTL_VM
|
||||
sysCTL_VFS = C.CTL_VFS
|
||||
sysCTL_NET = C.CTL_NET
|
||||
sysCTL_DEBUG = C.CTL_DEBUG
|
||||
sysCTL_HW = C.CTL_HW
|
||||
sysCTL_MACHDEP = C.CTL_MACHDEP
|
||||
sysCTL_USER = C.CTL_USER
|
||||
sysCTL_P1003_1B = C.CTL_P1003_1B
|
||||
sysCTL_LWKT = C.CTL_LWKT
|
||||
sysCTL_MAXID = C.CTL_MAXID
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = C.RTM_VERSION
|
||||
|
||||
sysRTM_ADD = C.RTM_ADD
|
||||
sysRTM_DELETE = C.RTM_DELETE
|
||||
sysRTM_CHANGE = C.RTM_CHANGE
|
||||
sysRTM_GET = C.RTM_GET
|
||||
sysRTM_LOSING = C.RTM_LOSING
|
||||
sysRTM_REDIRECT = C.RTM_REDIRECT
|
||||
sysRTM_MISS = C.RTM_MISS
|
||||
sysRTM_LOCK = C.RTM_LOCK
|
||||
sysRTM_RESOLVE = C.RTM_RESOLVE
|
||||
sysRTM_NEWADDR = C.RTM_NEWADDR
|
||||
sysRTM_DELADDR = C.RTM_DELADDR
|
||||
sysRTM_IFINFO = C.RTM_IFINFO
|
||||
sysRTM_NEWMADDR = C.RTM_NEWMADDR
|
||||
sysRTM_DELMADDR = C.RTM_DELMADDR
|
||||
sysRTM_IFANNOUNCE = C.RTM_IFANNOUNCE
|
||||
sysRTM_IEEE80211 = C.RTM_IEEE80211
|
||||
|
||||
sysRTA_DST = C.RTA_DST
|
||||
sysRTA_GATEWAY = C.RTA_GATEWAY
|
||||
sysRTA_NETMASK = C.RTA_NETMASK
|
||||
sysRTA_GENMASK = C.RTA_GENMASK
|
||||
sysRTA_IFP = C.RTA_IFP
|
||||
sysRTA_IFA = C.RTA_IFA
|
||||
sysRTA_AUTHOR = C.RTA_AUTHOR
|
||||
sysRTA_BRD = C.RTA_BRD
|
||||
sysRTA_MPLS1 = C.RTA_MPLS1
|
||||
sysRTA_MPLS2 = C.RTA_MPLS2
|
||||
sysRTA_MPLS3 = C.RTA_MPLS3
|
||||
|
||||
sysRTAX_DST = C.RTAX_DST
|
||||
sysRTAX_GATEWAY = C.RTAX_GATEWAY
|
||||
sysRTAX_NETMASK = C.RTAX_NETMASK
|
||||
sysRTAX_GENMASK = C.RTAX_GENMASK
|
||||
sysRTAX_IFP = C.RTAX_IFP
|
||||
sysRTAX_IFA = C.RTAX_IFA
|
||||
sysRTAX_AUTHOR = C.RTAX_AUTHOR
|
||||
sysRTAX_BRD = C.RTAX_BRD
|
||||
sysRTAX_MPLS1 = C.RTAX_MPLS1
|
||||
sysRTAX_MPLS2 = C.RTAX_MPLS2
|
||||
sysRTAX_MPLS3 = C.RTAX_MPLS3
|
||||
sysRTAX_MAX = C.RTAX_MAX
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrDragonFlyBSD4 = C.sizeof_struct_if_msghdr
|
||||
sizeofIfaMsghdrDragonFlyBSD4 = C.sizeof_struct_ifa_msghdr_dfly4
|
||||
|
||||
@@ -218,77 +218,6 @@ struct if_msghdr_freebsd11 {
|
||||
*/
|
||||
import "C"
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = C.AF_UNSPEC
|
||||
sysAF_INET = C.AF_INET
|
||||
sysAF_ROUTE = C.AF_ROUTE
|
||||
sysAF_LINK = C.AF_LINK
|
||||
sysAF_INET6 = C.AF_INET6
|
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW
|
||||
|
||||
sysNET_RT_DUMP = C.NET_RT_DUMP
|
||||
sysNET_RT_FLAGS = C.NET_RT_FLAGS
|
||||
sysNET_RT_IFLIST = C.NET_RT_IFLIST
|
||||
sysNET_RT_IFMALIST = C.NET_RT_IFMALIST
|
||||
sysNET_RT_IFLISTL = C.NET_RT_IFLISTL
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = C.CTL_MAXNAME
|
||||
|
||||
sysCTL_UNSPEC = C.CTL_UNSPEC
|
||||
sysCTL_KERN = C.CTL_KERN
|
||||
sysCTL_VM = C.CTL_VM
|
||||
sysCTL_VFS = C.CTL_VFS
|
||||
sysCTL_NET = C.CTL_NET
|
||||
sysCTL_DEBUG = C.CTL_DEBUG
|
||||
sysCTL_HW = C.CTL_HW
|
||||
sysCTL_MACHDEP = C.CTL_MACHDEP
|
||||
sysCTL_USER = C.CTL_USER
|
||||
sysCTL_P1003_1B = C.CTL_P1003_1B
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = C.RTM_VERSION
|
||||
|
||||
sysRTM_ADD = C.RTM_ADD
|
||||
sysRTM_DELETE = C.RTM_DELETE
|
||||
sysRTM_CHANGE = C.RTM_CHANGE
|
||||
sysRTM_GET = C.RTM_GET
|
||||
sysRTM_LOSING = C.RTM_LOSING
|
||||
sysRTM_REDIRECT = C.RTM_REDIRECT
|
||||
sysRTM_MISS = C.RTM_MISS
|
||||
sysRTM_LOCK = C.RTM_LOCK
|
||||
sysRTM_RESOLVE = C.RTM_RESOLVE
|
||||
sysRTM_NEWADDR = C.RTM_NEWADDR
|
||||
sysRTM_DELADDR = C.RTM_DELADDR
|
||||
sysRTM_IFINFO = C.RTM_IFINFO
|
||||
sysRTM_NEWMADDR = C.RTM_NEWMADDR
|
||||
sysRTM_DELMADDR = C.RTM_DELMADDR
|
||||
sysRTM_IFANNOUNCE = C.RTM_IFANNOUNCE
|
||||
sysRTM_IEEE80211 = C.RTM_IEEE80211
|
||||
|
||||
sysRTA_DST = C.RTA_DST
|
||||
sysRTA_GATEWAY = C.RTA_GATEWAY
|
||||
sysRTA_NETMASK = C.RTA_NETMASK
|
||||
sysRTA_GENMASK = C.RTA_GENMASK
|
||||
sysRTA_IFP = C.RTA_IFP
|
||||
sysRTA_IFA = C.RTA_IFA
|
||||
sysRTA_AUTHOR = C.RTA_AUTHOR
|
||||
sysRTA_BRD = C.RTA_BRD
|
||||
|
||||
sysRTAX_DST = C.RTAX_DST
|
||||
sysRTAX_GATEWAY = C.RTAX_GATEWAY
|
||||
sysRTAX_NETMASK = C.RTAX_NETMASK
|
||||
sysRTAX_GENMASK = C.RTAX_GENMASK
|
||||
sysRTAX_IFP = C.RTAX_IFP
|
||||
sysRTAX_IFA = C.RTAX_IFA
|
||||
sysRTAX_AUTHOR = C.RTAX_AUTHOR
|
||||
sysRTAX_BRD = C.RTAX_BRD
|
||||
sysRTAX_MAX = C.RTAX_MAX
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrlFreeBSD10 = C.sizeof_struct_if_msghdrl
|
||||
sizeofIfaMsghdrFreeBSD10 = C.sizeof_struct_ifa_msghdr
|
||||
|
||||
@@ -19,86 +19,6 @@ package route
|
||||
*/
|
||||
import "C"
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = C.AF_UNSPEC
|
||||
sysAF_INET = C.AF_INET
|
||||
sysAF_ROUTE = C.AF_ROUTE
|
||||
sysAF_LINK = C.AF_LINK
|
||||
sysAF_INET6 = C.AF_INET6
|
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW
|
||||
|
||||
sysNET_RT_DUMP = C.NET_RT_DUMP
|
||||
sysNET_RT_FLAGS = C.NET_RT_FLAGS
|
||||
sysNET_RT_IFLIST = C.NET_RT_IFLIST
|
||||
sysNET_RT_MAXID = C.NET_RT_MAXID
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = C.CTL_MAXNAME
|
||||
|
||||
sysCTL_UNSPEC = C.CTL_UNSPEC
|
||||
sysCTL_KERN = C.CTL_KERN
|
||||
sysCTL_VM = C.CTL_VM
|
||||
sysCTL_VFS = C.CTL_VFS
|
||||
sysCTL_NET = C.CTL_NET
|
||||
sysCTL_DEBUG = C.CTL_DEBUG
|
||||
sysCTL_HW = C.CTL_HW
|
||||
sysCTL_MACHDEP = C.CTL_MACHDEP
|
||||
sysCTL_USER = C.CTL_USER
|
||||
sysCTL_DDB = C.CTL_DDB
|
||||
sysCTL_PROC = C.CTL_PROC
|
||||
sysCTL_VENDOR = C.CTL_VENDOR
|
||||
sysCTL_EMUL = C.CTL_EMUL
|
||||
sysCTL_SECURITY = C.CTL_SECURITY
|
||||
sysCTL_MAXID = C.CTL_MAXID
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = C.RTM_VERSION
|
||||
|
||||
sysRTM_ADD = C.RTM_ADD
|
||||
sysRTM_DELETE = C.RTM_DELETE
|
||||
sysRTM_CHANGE = C.RTM_CHANGE
|
||||
sysRTM_GET = C.RTM_GET
|
||||
sysRTM_LOSING = C.RTM_LOSING
|
||||
sysRTM_REDIRECT = C.RTM_REDIRECT
|
||||
sysRTM_MISS = C.RTM_MISS
|
||||
sysRTM_LOCK = C.RTM_LOCK
|
||||
sysRTM_OLDADD = C.RTM_OLDADD
|
||||
sysRTM_OLDDEL = C.RTM_OLDDEL
|
||||
sysRTM_RESOLVE = C.RTM_RESOLVE
|
||||
sysRTM_NEWADDR = C.RTM_NEWADDR
|
||||
sysRTM_DELADDR = C.RTM_DELADDR
|
||||
sysRTM_IFANNOUNCE = C.RTM_IFANNOUNCE
|
||||
sysRTM_IEEE80211 = C.RTM_IEEE80211
|
||||
sysRTM_SETGATE = C.RTM_SETGATE
|
||||
sysRTM_LLINFO_UPD = C.RTM_LLINFO_UPD
|
||||
sysRTM_IFINFO = C.RTM_IFINFO
|
||||
sysRTM_CHGADDR = C.RTM_CHGADDR
|
||||
|
||||
sysRTA_DST = C.RTA_DST
|
||||
sysRTA_GATEWAY = C.RTA_GATEWAY
|
||||
sysRTA_NETMASK = C.RTA_NETMASK
|
||||
sysRTA_GENMASK = C.RTA_GENMASK
|
||||
sysRTA_IFP = C.RTA_IFP
|
||||
sysRTA_IFA = C.RTA_IFA
|
||||
sysRTA_AUTHOR = C.RTA_AUTHOR
|
||||
sysRTA_BRD = C.RTA_BRD
|
||||
sysRTA_TAG = C.RTA_TAG
|
||||
|
||||
sysRTAX_DST = C.RTAX_DST
|
||||
sysRTAX_GATEWAY = C.RTAX_GATEWAY
|
||||
sysRTAX_NETMASK = C.RTAX_NETMASK
|
||||
sysRTAX_GENMASK = C.RTAX_GENMASK
|
||||
sysRTAX_IFP = C.RTAX_IFP
|
||||
sysRTAX_IFA = C.RTAX_IFA
|
||||
sysRTAX_AUTHOR = C.RTAX_AUTHOR
|
||||
sysRTAX_BRD = C.RTAX_BRD
|
||||
sysRTAX_TAG = C.RTAX_TAG
|
||||
sysRTAX_MAX = C.RTAX_MAX
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrNetBSD7 = C.sizeof_struct_if_msghdr
|
||||
sizeofIfaMsghdrNetBSD7 = C.sizeof_struct_ifa_msghdr
|
||||
|
||||
@@ -19,95 +19,6 @@ package route
|
||||
*/
|
||||
import "C"
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = C.AF_UNSPEC
|
||||
sysAF_INET = C.AF_INET
|
||||
sysAF_ROUTE = C.AF_ROUTE
|
||||
sysAF_LINK = C.AF_LINK
|
||||
sysAF_INET6 = C.AF_INET6
|
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW
|
||||
|
||||
sysNET_RT_DUMP = C.NET_RT_DUMP
|
||||
sysNET_RT_FLAGS = C.NET_RT_FLAGS
|
||||
sysNET_RT_IFLIST = C.NET_RT_IFLIST
|
||||
sysNET_RT_STATS = C.NET_RT_STATS
|
||||
sysNET_RT_TABLE = C.NET_RT_TABLE
|
||||
sysNET_RT_IFNAMES = C.NET_RT_IFNAMES
|
||||
sysNET_RT_MAXID = C.NET_RT_MAXID
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = C.CTL_MAXNAME
|
||||
|
||||
sysCTL_UNSPEC = C.CTL_UNSPEC
|
||||
sysCTL_KERN = C.CTL_KERN
|
||||
sysCTL_VM = C.CTL_VM
|
||||
sysCTL_FS = C.CTL_FS
|
||||
sysCTL_NET = C.CTL_NET
|
||||
sysCTL_DEBUG = C.CTL_DEBUG
|
||||
sysCTL_HW = C.CTL_HW
|
||||
sysCTL_MACHDEP = C.CTL_MACHDEP
|
||||
sysCTL_DDB = C.CTL_DDB
|
||||
sysCTL_VFS = C.CTL_VFS
|
||||
sysCTL_MAXID = C.CTL_MAXID
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = C.RTM_VERSION
|
||||
|
||||
sysRTM_ADD = C.RTM_ADD
|
||||
sysRTM_DELETE = C.RTM_DELETE
|
||||
sysRTM_CHANGE = C.RTM_CHANGE
|
||||
sysRTM_GET = C.RTM_GET
|
||||
sysRTM_LOSING = C.RTM_LOSING
|
||||
sysRTM_REDIRECT = C.RTM_REDIRECT
|
||||
sysRTM_MISS = C.RTM_MISS
|
||||
sysRTM_LOCK = C.RTM_LOCK
|
||||
sysRTM_RESOLVE = C.RTM_RESOLVE
|
||||
sysRTM_NEWADDR = C.RTM_NEWADDR
|
||||
sysRTM_DELADDR = C.RTM_DELADDR
|
||||
sysRTM_IFINFO = C.RTM_IFINFO
|
||||
sysRTM_IFANNOUNCE = C.RTM_IFANNOUNCE
|
||||
sysRTM_DESYNC = C.RTM_DESYNC
|
||||
sysRTM_INVALIDATE = C.RTM_INVALIDATE
|
||||
sysRTM_BFD = C.RTM_BFD
|
||||
sysRTM_PROPOSAL = C.RTM_PROPOSAL
|
||||
|
||||
sysRTA_DST = C.RTA_DST
|
||||
sysRTA_GATEWAY = C.RTA_GATEWAY
|
||||
sysRTA_NETMASK = C.RTA_NETMASK
|
||||
sysRTA_GENMASK = C.RTA_GENMASK
|
||||
sysRTA_IFP = C.RTA_IFP
|
||||
sysRTA_IFA = C.RTA_IFA
|
||||
sysRTA_AUTHOR = C.RTA_AUTHOR
|
||||
sysRTA_BRD = C.RTA_BRD
|
||||
sysRTA_SRC = C.RTA_SRC
|
||||
sysRTA_SRCMASK = C.RTA_SRCMASK
|
||||
sysRTA_LABEL = C.RTA_LABEL
|
||||
sysRTA_BFD = C.RTA_BFD
|
||||
sysRTA_DNS = C.RTA_DNS
|
||||
sysRTA_STATIC = C.RTA_STATIC
|
||||
sysRTA_SEARCH = C.RTA_SEARCH
|
||||
|
||||
sysRTAX_DST = C.RTAX_DST
|
||||
sysRTAX_GATEWAY = C.RTAX_GATEWAY
|
||||
sysRTAX_NETMASK = C.RTAX_NETMASK
|
||||
sysRTAX_GENMASK = C.RTAX_GENMASK
|
||||
sysRTAX_IFP = C.RTAX_IFP
|
||||
sysRTAX_IFA = C.RTAX_IFA
|
||||
sysRTAX_AUTHOR = C.RTAX_AUTHOR
|
||||
sysRTAX_BRD = C.RTAX_BRD
|
||||
sysRTAX_SRC = C.RTAX_SRC
|
||||
sysRTAX_SRCMASK = C.RTAX_SRCMASK
|
||||
sysRTAX_LABEL = C.RTAX_LABEL
|
||||
sysRTAX_BFD = C.RTAX_BFD
|
||||
sysRTAX_DNS = C.RTAX_DNS
|
||||
sysRTAX_STATIC = C.RTAX_STATIC
|
||||
sysRTAX_SEARCH = C.RTAX_SEARCH
|
||||
sysRTAX_MAX = C.RTAX_MAX
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofRtMsghdr = C.sizeof_struct_rt_msghdr
|
||||
|
||||
|
||||
@@ -7,7 +7,11 @@
|
||||
|
||||
package route
|
||||
|
||||
import "runtime"
|
||||
import (
|
||||
"runtime"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func (w *wireFormat) parseInterfaceMessage(_ RIBType, b []byte) (Message, error) {
|
||||
if len(b) < w.bodyOff {
|
||||
@@ -18,13 +22,13 @@ func (w *wireFormat) parseInterfaceMessage(_ RIBType, b []byte) (Message, error)
|
||||
return nil, errInvalidMessage
|
||||
}
|
||||
attrs := uint(nativeEndian.Uint32(b[4:8]))
|
||||
if attrs&sysRTA_IFP == 0 {
|
||||
if attrs&unix.RTA_IFP == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
m := &InterfaceMessage{
|
||||
Version: int(b[2]),
|
||||
Type: int(b[3]),
|
||||
Addrs: make([]Addr, sysRTAX_MAX),
|
||||
Addrs: make([]Addr, unix.RTAX_MAX),
|
||||
Flags: int(nativeEndian.Uint32(b[8:12])),
|
||||
Index: int(nativeEndian.Uint16(b[12:14])),
|
||||
extOff: w.extOff,
|
||||
@@ -34,7 +38,7 @@ func (w *wireFormat) parseInterfaceMessage(_ RIBType, b []byte) (Message, error)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m.Addrs[sysRTAX_IFP] = a
|
||||
m.Addrs[unix.RTAX_IFP] = a
|
||||
m.Name = a.(*LinkAddr).Name
|
||||
return m, nil
|
||||
}
|
||||
|
||||
@@ -4,9 +4,11 @@
|
||||
|
||||
package route
|
||||
|
||||
import "golang.org/x/sys/unix"
|
||||
|
||||
func (w *wireFormat) parseInterfaceMessage(typ RIBType, b []byte) (Message, error) {
|
||||
var extOff, bodyOff int
|
||||
if typ == sysNET_RT_IFLISTL {
|
||||
if typ == unix.NET_RT_IFLISTL {
|
||||
if len(b) < 20 {
|
||||
return nil, errMessageTooShort
|
||||
}
|
||||
@@ -24,7 +26,7 @@ func (w *wireFormat) parseInterfaceMessage(typ RIBType, b []byte) (Message, erro
|
||||
return nil, errInvalidMessage
|
||||
}
|
||||
attrs := uint(nativeEndian.Uint32(b[4:8]))
|
||||
if attrs&sysRTA_IFP == 0 {
|
||||
if attrs&unix.RTA_IFP == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
m := &InterfaceMessage{
|
||||
@@ -32,7 +34,7 @@ func (w *wireFormat) parseInterfaceMessage(typ RIBType, b []byte) (Message, erro
|
||||
Type: int(b[3]),
|
||||
Flags: int(nativeEndian.Uint32(b[8:12])),
|
||||
Index: int(nativeEndian.Uint16(b[12:14])),
|
||||
Addrs: make([]Addr, sysRTAX_MAX),
|
||||
Addrs: make([]Addr, unix.RTAX_MAX),
|
||||
extOff: extOff,
|
||||
raw: b[:l],
|
||||
}
|
||||
@@ -40,14 +42,14 @@ func (w *wireFormat) parseInterfaceMessage(typ RIBType, b []byte) (Message, erro
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m.Addrs[sysRTAX_IFP] = a
|
||||
m.Addrs[unix.RTAX_IFP] = a
|
||||
m.Name = a.(*LinkAddr).Name
|
||||
return m, nil
|
||||
}
|
||||
|
||||
func (w *wireFormat) parseInterfaceAddrMessage(typ RIBType, b []byte) (Message, error) {
|
||||
var bodyOff int
|
||||
if typ == sysNET_RT_IFLISTL {
|
||||
if typ == unix.NET_RT_IFLISTL {
|
||||
if len(b) < 24 {
|
||||
return nil, errMessageTooShort
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
package route
|
||||
|
||||
import "golang.org/x/sys/unix"
|
||||
|
||||
func (*wireFormat) parseInterfaceMessage(_ RIBType, b []byte) (Message, error) {
|
||||
if len(b) < 32 {
|
||||
return nil, errMessageTooShort
|
||||
@@ -13,7 +15,7 @@ func (*wireFormat) parseInterfaceMessage(_ RIBType, b []byte) (Message, error) {
|
||||
return nil, errInvalidMessage
|
||||
}
|
||||
attrs := uint(nativeEndian.Uint32(b[12:16]))
|
||||
if attrs&sysRTA_IFP == 0 {
|
||||
if attrs&unix.RTA_IFP == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
m := &InterfaceMessage{
|
||||
@@ -21,7 +23,7 @@ func (*wireFormat) parseInterfaceMessage(_ RIBType, b []byte) (Message, error) {
|
||||
Type: int(b[3]),
|
||||
Flags: int(nativeEndian.Uint32(b[16:20])),
|
||||
Index: int(nativeEndian.Uint16(b[6:8])),
|
||||
Addrs: make([]Addr, sysRTAX_MAX),
|
||||
Addrs: make([]Addr, unix.RTAX_MAX),
|
||||
raw: b[:l],
|
||||
}
|
||||
ll := int(nativeEndian.Uint16(b[4:6]))
|
||||
@@ -32,7 +34,7 @@ func (*wireFormat) parseInterfaceMessage(_ RIBType, b []byte) (Message, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m.Addrs[sysRTAX_IFP] = a
|
||||
m.Addrs[unix.RTAX_IFP] = a
|
||||
m.Name = a.(*LinkAddr).Name
|
||||
return m, nil
|
||||
}
|
||||
|
||||
@@ -4,13 +4,17 @@
|
||||
|
||||
package route
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func TestFetchAndParseRIBOnDarwin(t *testing.T) {
|
||||
for _, typ := range []RIBType{sysNET_RT_FLAGS, sysNET_RT_DUMP2, sysNET_RT_IFLIST2} {
|
||||
for _, typ := range []RIBType{unix.NET_RT_FLAGS, unix.NET_RT_DUMP2, unix.NET_RT_IFLIST2} {
|
||||
var lastErr error
|
||||
var ms []Message
|
||||
for _, af := range []int{sysAF_UNSPEC, sysAF_INET, sysAF_INET6} {
|
||||
for _, af := range []int{unix.AF_UNSPEC, unix.AF_INET, unix.AF_INET6} {
|
||||
rs, err := fetchAndParseRIB(af, typ)
|
||||
if err != nil {
|
||||
lastErr = err
|
||||
|
||||
@@ -4,13 +4,17 @@
|
||||
|
||||
package route
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func TestFetchAndParseRIBOnFreeBSD(t *testing.T) {
|
||||
for _, typ := range []RIBType{sysNET_RT_IFMALIST} {
|
||||
for _, typ := range []RIBType{unix.NET_RT_IFMALIST} {
|
||||
var lastErr error
|
||||
var ms []Message
|
||||
for _, af := range []int{sysAF_UNSPEC, sysAF_INET, sysAF_INET6} {
|
||||
for _, af := range []int{unix.AF_UNSPEC, unix.AF_INET, unix.AF_INET6} {
|
||||
rs, err := fetchAndParseRIB(af, typ)
|
||||
if err != nil {
|
||||
lastErr = err
|
||||
@@ -34,7 +38,7 @@ func TestFetchAndParseRIBOnFreeBSD(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestFetchAndParseRIBOnFreeBSD10AndAbove(t *testing.T) {
|
||||
if _, err := FetchRIB(sysAF_UNSPEC, sysNET_RT_IFLISTL, 0); err != nil {
|
||||
if _, err := FetchRIB(unix.AF_UNSPEC, unix.NET_RT_IFLISTL, 0); err != nil {
|
||||
t.Skip("NET_RT_IFLISTL not supported")
|
||||
}
|
||||
if compatFreeBSD32 {
|
||||
@@ -47,12 +51,12 @@ func TestFetchAndParseRIBOnFreeBSD10AndAbove(t *testing.T) {
|
||||
msgs []Message
|
||||
ss []string
|
||||
}{
|
||||
{typ: sysNET_RT_IFLIST},
|
||||
{typ: sysNET_RT_IFLISTL},
|
||||
{typ: unix.NET_RT_IFLIST},
|
||||
{typ: unix.NET_RT_IFLISTL},
|
||||
}
|
||||
for i := range tests {
|
||||
var lastErr error
|
||||
for _, af := range []int{sysAF_UNSPEC, sysAF_INET, sysAF_INET6} {
|
||||
for _, af := range []int{unix.AF_UNSPEC, unix.AF_INET, unix.AF_INET6} {
|
||||
rs, err := fetchAndParseRIB(af, tests[i].typ)
|
||||
if err != nil {
|
||||
lastErr = err
|
||||
|
||||
@@ -12,13 +12,15 @@ import (
|
||||
"syscall"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func TestFetchAndParseRIB(t *testing.T) {
|
||||
for _, typ := range []RIBType{sysNET_RT_DUMP, sysNET_RT_IFLIST} {
|
||||
for _, typ := range []RIBType{unix.NET_RT_DUMP, unix.NET_RT_IFLIST} {
|
||||
var lastErr error
|
||||
var ms []Message
|
||||
for _, af := range []int{sysAF_UNSPEC, sysAF_INET, sysAF_INET6} {
|
||||
for _, af := range []int{unix.AF_UNSPEC, unix.AF_INET, unix.AF_INET6} {
|
||||
rs, err := fetchAndParseRIB(af, typ)
|
||||
if err != nil {
|
||||
lastErr = err
|
||||
@@ -49,7 +51,7 @@ var (
|
||||
func init() {
|
||||
// We need to keep rtmonSock alive to avoid treading on
|
||||
// recycled socket descriptors.
|
||||
rtmonSock, rtmonErr = syscall.Socket(sysAF_ROUTE, sysSOCK_RAW, sysAF_UNSPEC)
|
||||
rtmonSock, rtmonErr = syscall.Socket(unix.AF_ROUTE, unix.SOCK_RAW, unix.AF_UNSPEC)
|
||||
}
|
||||
|
||||
// TestMonitorAndParseRIB leaks a worker goroutine and a socket
|
||||
@@ -145,60 +147,60 @@ func TestParseRIBWithFuzz(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRouteMessage(t *testing.T) {
|
||||
s, err := syscall.Socket(sysAF_ROUTE, sysSOCK_RAW, sysAF_UNSPEC)
|
||||
s, err := syscall.Socket(unix.AF_ROUTE, unix.SOCK_RAW, unix.AF_UNSPEC)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer syscall.Close(s)
|
||||
|
||||
var ms []RouteMessage
|
||||
for _, af := range []int{sysAF_INET, sysAF_INET6} {
|
||||
if _, err := fetchAndParseRIB(af, sysNET_RT_DUMP); err != nil {
|
||||
for _, af := range []int{unix.AF_INET, unix.AF_INET6} {
|
||||
if _, err := fetchAndParseRIB(af, unix.NET_RT_DUMP); err != nil {
|
||||
t.Log(err)
|
||||
continue
|
||||
}
|
||||
switch af {
|
||||
case sysAF_INET:
|
||||
case unix.AF_INET:
|
||||
ms = append(ms, []RouteMessage{
|
||||
{
|
||||
Type: sysRTM_GET,
|
||||
Type: unix.RTM_GET,
|
||||
Addrs: []Addr{
|
||||
sysRTAX_DST: &Inet4Addr{IP: [4]byte{127, 0, 0, 1}},
|
||||
sysRTAX_GATEWAY: nil,
|
||||
sysRTAX_NETMASK: nil,
|
||||
sysRTAX_GENMASK: nil,
|
||||
sysRTAX_IFP: &LinkAddr{},
|
||||
sysRTAX_IFA: &Inet4Addr{},
|
||||
sysRTAX_AUTHOR: nil,
|
||||
sysRTAX_BRD: &Inet4Addr{},
|
||||
unix.RTAX_DST: &Inet4Addr{IP: [4]byte{127, 0, 0, 1}},
|
||||
unix.RTAX_GATEWAY: nil,
|
||||
unix.RTAX_NETMASK: nil,
|
||||
unix.RTAX_GENMASK: nil,
|
||||
unix.RTAX_IFP: &LinkAddr{},
|
||||
unix.RTAX_IFA: &Inet4Addr{},
|
||||
unix.RTAX_AUTHOR: nil,
|
||||
unix.RTAX_BRD: &Inet4Addr{},
|
||||
},
|
||||
},
|
||||
{
|
||||
Type: sysRTM_GET,
|
||||
Type: unix.RTM_GET,
|
||||
Addrs: []Addr{
|
||||
sysRTAX_DST: &Inet4Addr{IP: [4]byte{127, 0, 0, 1}},
|
||||
unix.RTAX_DST: &Inet4Addr{IP: [4]byte{127, 0, 0, 1}},
|
||||
},
|
||||
},
|
||||
}...)
|
||||
case sysAF_INET6:
|
||||
case unix.AF_INET6:
|
||||
ms = append(ms, []RouteMessage{
|
||||
{
|
||||
Type: sysRTM_GET,
|
||||
Type: unix.RTM_GET,
|
||||
Addrs: []Addr{
|
||||
sysRTAX_DST: &Inet6Addr{IP: [16]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}},
|
||||
sysRTAX_GATEWAY: nil,
|
||||
sysRTAX_NETMASK: nil,
|
||||
sysRTAX_GENMASK: nil,
|
||||
sysRTAX_IFP: &LinkAddr{},
|
||||
sysRTAX_IFA: &Inet6Addr{},
|
||||
sysRTAX_AUTHOR: nil,
|
||||
sysRTAX_BRD: &Inet6Addr{},
|
||||
unix.RTAX_DST: &Inet6Addr{IP: [16]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}},
|
||||
unix.RTAX_GATEWAY: nil,
|
||||
unix.RTAX_NETMASK: nil,
|
||||
unix.RTAX_GENMASK: nil,
|
||||
unix.RTAX_IFP: &LinkAddr{},
|
||||
unix.RTAX_IFA: &Inet6Addr{},
|
||||
unix.RTAX_AUTHOR: nil,
|
||||
unix.RTAX_BRD: &Inet6Addr{},
|
||||
},
|
||||
},
|
||||
{
|
||||
Type: sysRTM_GET,
|
||||
Type: unix.RTM_GET,
|
||||
Addrs: []Addr{
|
||||
sysRTAX_DST: &Inet6Addr{IP: [16]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}},
|
||||
unix.RTAX_DST: &Inet6Addr{IP: [16]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}},
|
||||
},
|
||||
},
|
||||
}...)
|
||||
|
||||
@@ -17,6 +17,8 @@ import (
|
||||
"errors"
|
||||
"os"
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -111,7 +113,7 @@ func FetchRIB(af int, typ RIBType, arg int) ([]byte, error) {
|
||||
try := 0
|
||||
for {
|
||||
try++
|
||||
mib := [6]int32{sysCTL_NET, sysAF_ROUTE, 0, int32(af), int32(typ), int32(arg)}
|
||||
mib := [6]int32{unix.CTL_NET, unix.AF_ROUTE, 0, int32(af), int32(typ), int32(arg)}
|
||||
n := uintptr(0)
|
||||
if err := sysctl(mib[:], nil, &n, nil, 0); err != nil {
|
||||
return nil, os.NewSyscallError("sysctl", err)
|
||||
|
||||
@@ -4,14 +4,18 @@
|
||||
|
||||
package route
|
||||
|
||||
import "syscall"
|
||||
import (
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func (m *RouteMessage) marshal() ([]byte, error) {
|
||||
l := sizeofRtMsghdr + addrsSpace(m.Addrs)
|
||||
b := make([]byte, l)
|
||||
nativeEndian.PutUint16(b[:2], uint16(l))
|
||||
if m.Version == 0 {
|
||||
b[2] = sysRTM_VERSION
|
||||
b[2] = unix.RTM_VERSION
|
||||
} else {
|
||||
b[2] = byte(m.Version)
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@ import (
|
||||
"fmt"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func (m *RouteMessage) String() string {
|
||||
@@ -176,13 +178,13 @@ type addrFamily int
|
||||
|
||||
func (af addrFamily) String() string {
|
||||
switch af {
|
||||
case sysAF_UNSPEC:
|
||||
case unix.AF_UNSPEC:
|
||||
return "unspec"
|
||||
case sysAF_LINK:
|
||||
case unix.AF_LINK:
|
||||
return "link"
|
||||
case sysAF_INET:
|
||||
case unix.AF_INET:
|
||||
return "inet4"
|
||||
case sysAF_INET6:
|
||||
case unix.AF_INET6:
|
||||
return "inet6"
|
||||
default:
|
||||
return fmt.Sprintf("%d", af)
|
||||
@@ -281,24 +283,24 @@ func (as addrs) String() string {
|
||||
|
||||
func (as addrs) match(attrs addrAttrs) error {
|
||||
var ts addrAttrs
|
||||
af := sysAF_UNSPEC
|
||||
af := unix.AF_UNSPEC
|
||||
for i := range as {
|
||||
if as[i] != nil {
|
||||
ts |= 1 << uint(i)
|
||||
}
|
||||
switch as[i].(type) {
|
||||
case *Inet4Addr:
|
||||
if af == sysAF_UNSPEC {
|
||||
af = sysAF_INET
|
||||
if af == unix.AF_UNSPEC {
|
||||
af = unix.AF_INET
|
||||
}
|
||||
if af != sysAF_INET {
|
||||
if af != unix.AF_INET {
|
||||
return fmt.Errorf("got %v; want %v", addrs(as), addrFamily(af))
|
||||
}
|
||||
case *Inet6Addr:
|
||||
if af == sysAF_UNSPEC {
|
||||
af = sysAF_INET6
|
||||
if af == unix.AF_UNSPEC {
|
||||
af = unix.AF_INET6
|
||||
}
|
||||
if af != sysAF_INET6 {
|
||||
if af != unix.AF_INET6 {
|
||||
return fmt.Errorf("got %v; want %v", addrs(as), addrFamily(af))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,11 @@
|
||||
|
||||
package route
|
||||
|
||||
import "unsafe"
|
||||
import (
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
var (
|
||||
nativeEndian binaryByteOrder
|
||||
@@ -25,7 +29,7 @@ func init() {
|
||||
nativeEndian = bigEndian
|
||||
}
|
||||
// might get overridden in probeRoutingStack
|
||||
rtmVersion = sysRTM_VERSION
|
||||
rtmVersion = unix.RTM_VERSION
|
||||
kernelAlign, wireFormats = probeRoutingStack()
|
||||
}
|
||||
|
||||
|
||||
@@ -4,9 +4,11 @@
|
||||
|
||||
package route
|
||||
|
||||
import "golang.org/x/sys/unix"
|
||||
|
||||
func (typ RIBType) parseable() bool {
|
||||
switch typ {
|
||||
case sysNET_RT_STAT, sysNET_RT_TRASH:
|
||||
case unix.NET_RT_STAT, unix.NET_RT_TRASH:
|
||||
return false
|
||||
default:
|
||||
return true
|
||||
@@ -66,22 +68,22 @@ func probeRoutingStack() (int, map[int]*wireFormat) {
|
||||
ifmam2.parse = ifmam2.parseInterfaceMulticastAddrMessage
|
||||
// Darwin kernels require 32-bit aligned access to routing facilities.
|
||||
return 4, map[int]*wireFormat{
|
||||
sysRTM_ADD: rtm,
|
||||
sysRTM_DELETE: rtm,
|
||||
sysRTM_CHANGE: rtm,
|
||||
sysRTM_GET: rtm,
|
||||
sysRTM_LOSING: rtm,
|
||||
sysRTM_REDIRECT: rtm,
|
||||
sysRTM_MISS: rtm,
|
||||
sysRTM_LOCK: rtm,
|
||||
sysRTM_RESOLVE: rtm,
|
||||
sysRTM_NEWADDR: ifam,
|
||||
sysRTM_DELADDR: ifam,
|
||||
sysRTM_IFINFO: ifm,
|
||||
sysRTM_NEWMADDR: ifmam,
|
||||
sysRTM_DELMADDR: ifmam,
|
||||
sysRTM_IFINFO2: ifm2,
|
||||
sysRTM_NEWMADDR2: ifmam2,
|
||||
sysRTM_GET2: rtm2,
|
||||
unix.RTM_ADD: rtm,
|
||||
unix.RTM_DELETE: rtm,
|
||||
unix.RTM_CHANGE: rtm,
|
||||
unix.RTM_GET: rtm,
|
||||
unix.RTM_LOSING: rtm,
|
||||
unix.RTM_REDIRECT: rtm,
|
||||
unix.RTM_MISS: rtm,
|
||||
unix.RTM_LOCK: rtm,
|
||||
unix.RTM_RESOLVE: rtm,
|
||||
unix.RTM_NEWADDR: ifam,
|
||||
unix.RTM_DELADDR: ifam,
|
||||
unix.RTM_IFINFO: ifm,
|
||||
unix.RTM_NEWMADDR: ifmam,
|
||||
unix.RTM_DELMADDR: ifmam,
|
||||
unix.RTM_IFINFO2: ifm2,
|
||||
unix.RTM_NEWMADDR2: ifmam2,
|
||||
unix.RTM_GET2: rtm2,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@ package route
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func (typ RIBType) parseable() bool { return true }
|
||||
@@ -69,20 +71,20 @@ func probeRoutingStack() (int, map[int]*wireFormat) {
|
||||
}
|
||||
|
||||
return int(unsafe.Sizeof(p)), map[int]*wireFormat{
|
||||
sysRTM_ADD: rtm,
|
||||
sysRTM_DELETE: rtm,
|
||||
sysRTM_CHANGE: rtm,
|
||||
sysRTM_GET: rtm,
|
||||
sysRTM_LOSING: rtm,
|
||||
sysRTM_REDIRECT: rtm,
|
||||
sysRTM_MISS: rtm,
|
||||
sysRTM_LOCK: rtm,
|
||||
sysRTM_RESOLVE: rtm,
|
||||
sysRTM_NEWADDR: ifam,
|
||||
sysRTM_DELADDR: ifam,
|
||||
sysRTM_IFINFO: ifm,
|
||||
sysRTM_NEWMADDR: ifmam,
|
||||
sysRTM_DELMADDR: ifmam,
|
||||
sysRTM_IFANNOUNCE: ifanm,
|
||||
unix.RTM_ADD: rtm,
|
||||
unix.RTM_DELETE: rtm,
|
||||
unix.RTM_CHANGE: rtm,
|
||||
unix.RTM_GET: rtm,
|
||||
unix.RTM_LOSING: rtm,
|
||||
unix.RTM_REDIRECT: rtm,
|
||||
unix.RTM_MISS: rtm,
|
||||
unix.RTM_LOCK: rtm,
|
||||
unix.RTM_RESOLVE: rtm,
|
||||
unix.RTM_NEWADDR: ifam,
|
||||
unix.RTM_DELADDR: ifam,
|
||||
unix.RTM_IFINFO: ifm,
|
||||
unix.RTM_NEWMADDR: ifmam,
|
||||
unix.RTM_DELMADDR: ifmam,
|
||||
unix.RTM_IFANNOUNCE: ifanm,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@ package route
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func (typ RIBType) parseable() bool { return true }
|
||||
@@ -141,20 +143,20 @@ func probeRoutingStack() (int, map[int]*wireFormat) {
|
||||
ifmam.parse = ifmam.parseInterfaceMulticastAddrMessage
|
||||
ifanm.parse = ifanm.parseInterfaceAnnounceMessage
|
||||
return align, map[int]*wireFormat{
|
||||
sysRTM_ADD: rtm,
|
||||
sysRTM_DELETE: rtm,
|
||||
sysRTM_CHANGE: rtm,
|
||||
sysRTM_GET: rtm,
|
||||
sysRTM_LOSING: rtm,
|
||||
sysRTM_REDIRECT: rtm,
|
||||
sysRTM_MISS: rtm,
|
||||
sysRTM_LOCK: rtm,
|
||||
sysRTM_RESOLVE: rtm,
|
||||
sysRTM_NEWADDR: ifam,
|
||||
sysRTM_DELADDR: ifam,
|
||||
sysRTM_IFINFO: ifm,
|
||||
sysRTM_NEWMADDR: ifmam,
|
||||
sysRTM_DELMADDR: ifmam,
|
||||
sysRTM_IFANNOUNCE: ifanm,
|
||||
unix.RTM_ADD: rtm,
|
||||
unix.RTM_DELETE: rtm,
|
||||
unix.RTM_CHANGE: rtm,
|
||||
unix.RTM_GET: rtm,
|
||||
unix.RTM_LOSING: rtm,
|
||||
unix.RTM_REDIRECT: rtm,
|
||||
unix.RTM_MISS: rtm,
|
||||
unix.RTM_LOCK: rtm,
|
||||
unix.RTM_RESOLVE: rtm,
|
||||
unix.RTM_NEWADDR: ifam,
|
||||
unix.RTM_DELADDR: ifam,
|
||||
unix.RTM_IFINFO: ifm,
|
||||
unix.RTM_NEWMADDR: ifmam,
|
||||
unix.RTM_DELMADDR: ifmam,
|
||||
unix.RTM_IFANNOUNCE: ifanm,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
package route
|
||||
|
||||
import "golang.org/x/sys/unix"
|
||||
|
||||
func (typ RIBType) parseable() bool { return true }
|
||||
|
||||
// RouteMetrics represents route metrics.
|
||||
@@ -54,18 +56,18 @@ func probeRoutingStack() (int, map[int]*wireFormat) {
|
||||
// NetBSD 6 and above kernels require 64-bit aligned access to
|
||||
// routing facilities.
|
||||
return 8, map[int]*wireFormat{
|
||||
sysRTM_ADD: rtm,
|
||||
sysRTM_DELETE: rtm,
|
||||
sysRTM_CHANGE: rtm,
|
||||
sysRTM_GET: rtm,
|
||||
sysRTM_LOSING: rtm,
|
||||
sysRTM_REDIRECT: rtm,
|
||||
sysRTM_MISS: rtm,
|
||||
sysRTM_LOCK: rtm,
|
||||
sysRTM_RESOLVE: rtm,
|
||||
sysRTM_NEWADDR: ifam,
|
||||
sysRTM_DELADDR: ifam,
|
||||
sysRTM_IFANNOUNCE: ifanm,
|
||||
sysRTM_IFINFO: ifm,
|
||||
unix.RTM_ADD: rtm,
|
||||
unix.RTM_DELETE: rtm,
|
||||
unix.RTM_CHANGE: rtm,
|
||||
unix.RTM_GET: rtm,
|
||||
unix.RTM_LOSING: rtm,
|
||||
unix.RTM_REDIRECT: rtm,
|
||||
unix.RTM_MISS: rtm,
|
||||
unix.RTM_LOCK: rtm,
|
||||
unix.RTM_RESOLVE: rtm,
|
||||
unix.RTM_NEWADDR: ifam,
|
||||
unix.RTM_DELADDR: ifam,
|
||||
unix.RTM_IFANNOUNCE: ifanm,
|
||||
unix.RTM_IFINFO: ifm,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,11 +4,15 @@
|
||||
|
||||
package route
|
||||
|
||||
import "unsafe"
|
||||
import (
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func (typ RIBType) parseable() bool {
|
||||
switch typ {
|
||||
case sysNET_RT_STATS, sysNET_RT_TABLE:
|
||||
case unix.NET_RT_STATS, unix.NET_RT_TABLE:
|
||||
return false
|
||||
default:
|
||||
return true
|
||||
@@ -62,19 +66,19 @@ func probeRoutingStack() (int, map[int]*wireFormat) {
|
||||
ifanm := &wireFormat{extOff: -1, bodyOff: -1}
|
||||
ifanm.parse = ifanm.parseInterfaceAnnounceMessage
|
||||
return int(unsafe.Sizeof(p)), map[int]*wireFormat{
|
||||
sysRTM_ADD: rtm,
|
||||
sysRTM_DELETE: rtm,
|
||||
sysRTM_CHANGE: rtm,
|
||||
sysRTM_GET: rtm,
|
||||
sysRTM_LOSING: rtm,
|
||||
sysRTM_REDIRECT: rtm,
|
||||
sysRTM_MISS: rtm,
|
||||
sysRTM_LOCK: rtm,
|
||||
sysRTM_RESOLVE: rtm,
|
||||
sysRTM_NEWADDR: ifam,
|
||||
sysRTM_DELADDR: ifam,
|
||||
sysRTM_IFINFO: ifm,
|
||||
sysRTM_IFANNOUNCE: ifanm,
|
||||
sysRTM_DESYNC: rtm,
|
||||
unix.RTM_ADD: rtm,
|
||||
unix.RTM_DELETE: rtm,
|
||||
unix.RTM_CHANGE: rtm,
|
||||
unix.RTM_GET: rtm,
|
||||
unix.RTM_LOSING: rtm,
|
||||
unix.RTM_REDIRECT: rtm,
|
||||
unix.RTM_MISS: rtm,
|
||||
unix.RTM_LOCK: rtm,
|
||||
unix.RTM_RESOLVE: rtm,
|
||||
unix.RTM_NEWADDR: ifam,
|
||||
unix.RTM_DELADDR: ifam,
|
||||
unix.RTM_IFINFO: ifm,
|
||||
unix.RTM_IFANNOUNCE: ifanm,
|
||||
unix.RTM_DESYNC: rtm,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,83 +3,6 @@
|
||||
|
||||
package route
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = 0x0
|
||||
sysAF_INET = 0x2
|
||||
sysAF_ROUTE = 0x11
|
||||
sysAF_LINK = 0x12
|
||||
sysAF_INET6 = 0x1e
|
||||
|
||||
sysSOCK_RAW = 0x3
|
||||
|
||||
sysNET_RT_DUMP = 0x1
|
||||
sysNET_RT_FLAGS = 0x2
|
||||
sysNET_RT_IFLIST = 0x3
|
||||
sysNET_RT_STAT = 0x4
|
||||
sysNET_RT_TRASH = 0x5
|
||||
sysNET_RT_IFLIST2 = 0x6
|
||||
sysNET_RT_DUMP2 = 0x7
|
||||
sysNET_RT_MAXID = 0xa
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = 0xc
|
||||
|
||||
sysCTL_UNSPEC = 0x0
|
||||
sysCTL_KERN = 0x1
|
||||
sysCTL_VM = 0x2
|
||||
sysCTL_VFS = 0x3
|
||||
sysCTL_NET = 0x4
|
||||
sysCTL_DEBUG = 0x5
|
||||
sysCTL_HW = 0x6
|
||||
sysCTL_MACHDEP = 0x7
|
||||
sysCTL_USER = 0x8
|
||||
sysCTL_MAXID = 0x9
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = 0x5
|
||||
|
||||
sysRTM_ADD = 0x1
|
||||
sysRTM_DELETE = 0x2
|
||||
sysRTM_CHANGE = 0x3
|
||||
sysRTM_GET = 0x4
|
||||
sysRTM_LOSING = 0x5
|
||||
sysRTM_REDIRECT = 0x6
|
||||
sysRTM_MISS = 0x7
|
||||
sysRTM_LOCK = 0x8
|
||||
sysRTM_OLDADD = 0x9
|
||||
sysRTM_OLDDEL = 0xa
|
||||
sysRTM_RESOLVE = 0xb
|
||||
sysRTM_NEWADDR = 0xc
|
||||
sysRTM_DELADDR = 0xd
|
||||
sysRTM_IFINFO = 0xe
|
||||
sysRTM_NEWMADDR = 0xf
|
||||
sysRTM_DELMADDR = 0x10
|
||||
sysRTM_IFINFO2 = 0x12
|
||||
sysRTM_NEWMADDR2 = 0x13
|
||||
sysRTM_GET2 = 0x14
|
||||
|
||||
sysRTA_DST = 0x1
|
||||
sysRTA_GATEWAY = 0x2
|
||||
sysRTA_NETMASK = 0x4
|
||||
sysRTA_GENMASK = 0x8
|
||||
sysRTA_IFP = 0x10
|
||||
sysRTA_IFA = 0x20
|
||||
sysRTA_AUTHOR = 0x40
|
||||
sysRTA_BRD = 0x80
|
||||
|
||||
sysRTAX_DST = 0x0
|
||||
sysRTAX_GATEWAY = 0x1
|
||||
sysRTAX_NETMASK = 0x2
|
||||
sysRTAX_GENMASK = 0x3
|
||||
sysRTAX_IFP = 0x4
|
||||
sysRTAX_IFA = 0x5
|
||||
sysRTAX_AUTHOR = 0x6
|
||||
sysRTAX_BRD = 0x7
|
||||
sysRTAX_MAX = 0x8
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrDarwin15 = 0x70
|
||||
sizeofIfaMsghdrDarwin15 = 0x14
|
||||
|
||||
@@ -3,84 +3,6 @@
|
||||
|
||||
package route
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = 0x0
|
||||
sysAF_INET = 0x2
|
||||
sysAF_ROUTE = 0x11
|
||||
sysAF_LINK = 0x12
|
||||
sysAF_INET6 = 0x1c
|
||||
|
||||
sysSOCK_RAW = 0x3
|
||||
|
||||
sysNET_RT_DUMP = 0x1
|
||||
sysNET_RT_FLAGS = 0x2
|
||||
sysNET_RT_IFLIST = 0x3
|
||||
sysNET_RT_MAXID = 0x4
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = 0xc
|
||||
|
||||
sysCTL_UNSPEC = 0x0
|
||||
sysCTL_KERN = 0x1
|
||||
sysCTL_VM = 0x2
|
||||
sysCTL_VFS = 0x3
|
||||
sysCTL_NET = 0x4
|
||||
sysCTL_DEBUG = 0x5
|
||||
sysCTL_HW = 0x6
|
||||
sysCTL_MACHDEP = 0x7
|
||||
sysCTL_USER = 0x8
|
||||
sysCTL_P1003_1B = 0x9
|
||||
sysCTL_LWKT = 0xa
|
||||
sysCTL_MAXID = 0xb
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = 0x6
|
||||
|
||||
sysRTM_ADD = 0x1
|
||||
sysRTM_DELETE = 0x2
|
||||
sysRTM_CHANGE = 0x3
|
||||
sysRTM_GET = 0x4
|
||||
sysRTM_LOSING = 0x5
|
||||
sysRTM_REDIRECT = 0x6
|
||||
sysRTM_MISS = 0x7
|
||||
sysRTM_LOCK = 0x8
|
||||
sysRTM_RESOLVE = 0xb
|
||||
sysRTM_NEWADDR = 0xc
|
||||
sysRTM_DELADDR = 0xd
|
||||
sysRTM_IFINFO = 0xe
|
||||
sysRTM_NEWMADDR = 0xf
|
||||
sysRTM_DELMADDR = 0x10
|
||||
sysRTM_IFANNOUNCE = 0x11
|
||||
sysRTM_IEEE80211 = 0x12
|
||||
|
||||
sysRTA_DST = 0x1
|
||||
sysRTA_GATEWAY = 0x2
|
||||
sysRTA_NETMASK = 0x4
|
||||
sysRTA_GENMASK = 0x8
|
||||
sysRTA_IFP = 0x10
|
||||
sysRTA_IFA = 0x20
|
||||
sysRTA_AUTHOR = 0x40
|
||||
sysRTA_BRD = 0x80
|
||||
sysRTA_MPLS1 = 0x100
|
||||
sysRTA_MPLS2 = 0x200
|
||||
sysRTA_MPLS3 = 0x400
|
||||
|
||||
sysRTAX_DST = 0x0
|
||||
sysRTAX_GATEWAY = 0x1
|
||||
sysRTAX_NETMASK = 0x2
|
||||
sysRTAX_GENMASK = 0x3
|
||||
sysRTAX_IFP = 0x4
|
||||
sysRTAX_IFA = 0x5
|
||||
sysRTAX_AUTHOR = 0x6
|
||||
sysRTAX_BRD = 0x7
|
||||
sysRTAX_MPLS1 = 0x8
|
||||
sysRTAX_MPLS2 = 0x9
|
||||
sysRTAX_MPLS3 = 0xa
|
||||
sysRTAX_MAX = 0xb
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrDragonFlyBSD4 = 0xb0
|
||||
sizeofIfaMsghdrDragonFlyBSD4 = 0x14
|
||||
|
||||
@@ -3,77 +3,6 @@
|
||||
|
||||
package route
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = 0x0
|
||||
sysAF_INET = 0x2
|
||||
sysAF_ROUTE = 0x11
|
||||
sysAF_LINK = 0x12
|
||||
sysAF_INET6 = 0x1c
|
||||
|
||||
sysSOCK_RAW = 0x3
|
||||
|
||||
sysNET_RT_DUMP = 0x1
|
||||
sysNET_RT_FLAGS = 0x2
|
||||
sysNET_RT_IFLIST = 0x3
|
||||
sysNET_RT_IFMALIST = 0x4
|
||||
sysNET_RT_IFLISTL = 0x5
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = 0x18
|
||||
|
||||
sysCTL_UNSPEC = 0x0
|
||||
sysCTL_KERN = 0x1
|
||||
sysCTL_VM = 0x2
|
||||
sysCTL_VFS = 0x3
|
||||
sysCTL_NET = 0x4
|
||||
sysCTL_DEBUG = 0x5
|
||||
sysCTL_HW = 0x6
|
||||
sysCTL_MACHDEP = 0x7
|
||||
sysCTL_USER = 0x8
|
||||
sysCTL_P1003_1B = 0x9
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = 0x5
|
||||
|
||||
sysRTM_ADD = 0x1
|
||||
sysRTM_DELETE = 0x2
|
||||
sysRTM_CHANGE = 0x3
|
||||
sysRTM_GET = 0x4
|
||||
sysRTM_LOSING = 0x5
|
||||
sysRTM_REDIRECT = 0x6
|
||||
sysRTM_MISS = 0x7
|
||||
sysRTM_LOCK = 0x8
|
||||
sysRTM_RESOLVE = 0xb
|
||||
sysRTM_NEWADDR = 0xc
|
||||
sysRTM_DELADDR = 0xd
|
||||
sysRTM_IFINFO = 0xe
|
||||
sysRTM_NEWMADDR = 0xf
|
||||
sysRTM_DELMADDR = 0x10
|
||||
sysRTM_IFANNOUNCE = 0x11
|
||||
sysRTM_IEEE80211 = 0x12
|
||||
|
||||
sysRTA_DST = 0x1
|
||||
sysRTA_GATEWAY = 0x2
|
||||
sysRTA_NETMASK = 0x4
|
||||
sysRTA_GENMASK = 0x8
|
||||
sysRTA_IFP = 0x10
|
||||
sysRTA_IFA = 0x20
|
||||
sysRTA_AUTHOR = 0x40
|
||||
sysRTA_BRD = 0x80
|
||||
|
||||
sysRTAX_DST = 0x0
|
||||
sysRTAX_GATEWAY = 0x1
|
||||
sysRTAX_NETMASK = 0x2
|
||||
sysRTAX_GENMASK = 0x3
|
||||
sysRTAX_IFP = 0x4
|
||||
sysRTAX_IFA = 0x5
|
||||
sysRTAX_AUTHOR = 0x6
|
||||
sysRTAX_BRD = 0x7
|
||||
sysRTAX_MAX = 0x8
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrlFreeBSD10 = 0x68
|
||||
sizeofIfaMsghdrFreeBSD10 = 0x14
|
||||
|
||||
@@ -3,77 +3,6 @@
|
||||
|
||||
package route
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = 0x0
|
||||
sysAF_INET = 0x2
|
||||
sysAF_ROUTE = 0x11
|
||||
sysAF_LINK = 0x12
|
||||
sysAF_INET6 = 0x1c
|
||||
|
||||
sysSOCK_RAW = 0x3
|
||||
|
||||
sysNET_RT_DUMP = 0x1
|
||||
sysNET_RT_FLAGS = 0x2
|
||||
sysNET_RT_IFLIST = 0x3
|
||||
sysNET_RT_IFMALIST = 0x4
|
||||
sysNET_RT_IFLISTL = 0x5
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = 0x18
|
||||
|
||||
sysCTL_UNSPEC = 0x0
|
||||
sysCTL_KERN = 0x1
|
||||
sysCTL_VM = 0x2
|
||||
sysCTL_VFS = 0x3
|
||||
sysCTL_NET = 0x4
|
||||
sysCTL_DEBUG = 0x5
|
||||
sysCTL_HW = 0x6
|
||||
sysCTL_MACHDEP = 0x7
|
||||
sysCTL_USER = 0x8
|
||||
sysCTL_P1003_1B = 0x9
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = 0x5
|
||||
|
||||
sysRTM_ADD = 0x1
|
||||
sysRTM_DELETE = 0x2
|
||||
sysRTM_CHANGE = 0x3
|
||||
sysRTM_GET = 0x4
|
||||
sysRTM_LOSING = 0x5
|
||||
sysRTM_REDIRECT = 0x6
|
||||
sysRTM_MISS = 0x7
|
||||
sysRTM_LOCK = 0x8
|
||||
sysRTM_RESOLVE = 0xb
|
||||
sysRTM_NEWADDR = 0xc
|
||||
sysRTM_DELADDR = 0xd
|
||||
sysRTM_IFINFO = 0xe
|
||||
sysRTM_NEWMADDR = 0xf
|
||||
sysRTM_DELMADDR = 0x10
|
||||
sysRTM_IFANNOUNCE = 0x11
|
||||
sysRTM_IEEE80211 = 0x12
|
||||
|
||||
sysRTA_DST = 0x1
|
||||
sysRTA_GATEWAY = 0x2
|
||||
sysRTA_NETMASK = 0x4
|
||||
sysRTA_GENMASK = 0x8
|
||||
sysRTA_IFP = 0x10
|
||||
sysRTA_IFA = 0x20
|
||||
sysRTA_AUTHOR = 0x40
|
||||
sysRTA_BRD = 0x80
|
||||
|
||||
sysRTAX_DST = 0x0
|
||||
sysRTAX_GATEWAY = 0x1
|
||||
sysRTAX_NETMASK = 0x2
|
||||
sysRTAX_GENMASK = 0x3
|
||||
sysRTAX_IFP = 0x4
|
||||
sysRTAX_IFA = 0x5
|
||||
sysRTAX_AUTHOR = 0x6
|
||||
sysRTAX_BRD = 0x7
|
||||
sysRTAX_MAX = 0x8
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrlFreeBSD10 = 0xb0
|
||||
sizeofIfaMsghdrFreeBSD10 = 0x14
|
||||
|
||||
@@ -3,77 +3,6 @@
|
||||
|
||||
package route
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = 0x0
|
||||
sysAF_INET = 0x2
|
||||
sysAF_ROUTE = 0x11
|
||||
sysAF_LINK = 0x12
|
||||
sysAF_INET6 = 0x1c
|
||||
|
||||
sysSOCK_RAW = 0x3
|
||||
|
||||
sysNET_RT_DUMP = 0x1
|
||||
sysNET_RT_FLAGS = 0x2
|
||||
sysNET_RT_IFLIST = 0x3
|
||||
sysNET_RT_IFMALIST = 0x4
|
||||
sysNET_RT_IFLISTL = 0x5
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = 0x18
|
||||
|
||||
sysCTL_UNSPEC = 0x0
|
||||
sysCTL_KERN = 0x1
|
||||
sysCTL_VM = 0x2
|
||||
sysCTL_VFS = 0x3
|
||||
sysCTL_NET = 0x4
|
||||
sysCTL_DEBUG = 0x5
|
||||
sysCTL_HW = 0x6
|
||||
sysCTL_MACHDEP = 0x7
|
||||
sysCTL_USER = 0x8
|
||||
sysCTL_P1003_1B = 0x9
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = 0x5
|
||||
|
||||
sysRTM_ADD = 0x1
|
||||
sysRTM_DELETE = 0x2
|
||||
sysRTM_CHANGE = 0x3
|
||||
sysRTM_GET = 0x4
|
||||
sysRTM_LOSING = 0x5
|
||||
sysRTM_REDIRECT = 0x6
|
||||
sysRTM_MISS = 0x7
|
||||
sysRTM_LOCK = 0x8
|
||||
sysRTM_RESOLVE = 0xb
|
||||
sysRTM_NEWADDR = 0xc
|
||||
sysRTM_DELADDR = 0xd
|
||||
sysRTM_IFINFO = 0xe
|
||||
sysRTM_NEWMADDR = 0xf
|
||||
sysRTM_DELMADDR = 0x10
|
||||
sysRTM_IFANNOUNCE = 0x11
|
||||
sysRTM_IEEE80211 = 0x12
|
||||
|
||||
sysRTA_DST = 0x1
|
||||
sysRTA_GATEWAY = 0x2
|
||||
sysRTA_NETMASK = 0x4
|
||||
sysRTA_GENMASK = 0x8
|
||||
sysRTA_IFP = 0x10
|
||||
sysRTA_IFA = 0x20
|
||||
sysRTA_AUTHOR = 0x40
|
||||
sysRTA_BRD = 0x80
|
||||
|
||||
sysRTAX_DST = 0x0
|
||||
sysRTAX_GATEWAY = 0x1
|
||||
sysRTAX_NETMASK = 0x2
|
||||
sysRTAX_GENMASK = 0x3
|
||||
sysRTAX_IFP = 0x4
|
||||
sysRTAX_IFA = 0x5
|
||||
sysRTAX_AUTHOR = 0x6
|
||||
sysRTAX_BRD = 0x7
|
||||
sysRTAX_MAX = 0x8
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrlFreeBSD10 = 0x68
|
||||
sizeofIfaMsghdrFreeBSD10 = 0x14
|
||||
|
||||
@@ -3,77 +3,6 @@
|
||||
|
||||
package route
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = 0x0
|
||||
sysAF_INET = 0x2
|
||||
sysAF_ROUTE = 0x11
|
||||
sysAF_LINK = 0x12
|
||||
sysAF_INET6 = 0x1c
|
||||
|
||||
sysSOCK_RAW = 0x3
|
||||
|
||||
sysNET_RT_DUMP = 0x1
|
||||
sysNET_RT_FLAGS = 0x2
|
||||
sysNET_RT_IFLIST = 0x3
|
||||
sysNET_RT_IFMALIST = 0x4
|
||||
sysNET_RT_IFLISTL = 0x5
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = 0x18
|
||||
|
||||
sysCTL_UNSPEC = 0x0
|
||||
sysCTL_KERN = 0x1
|
||||
sysCTL_VM = 0x2
|
||||
sysCTL_VFS = 0x3
|
||||
sysCTL_NET = 0x4
|
||||
sysCTL_DEBUG = 0x5
|
||||
sysCTL_HW = 0x6
|
||||
sysCTL_MACHDEP = 0x7
|
||||
sysCTL_USER = 0x8
|
||||
sysCTL_P1003_1B = 0x9
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = 0x5
|
||||
|
||||
sysRTM_ADD = 0x1
|
||||
sysRTM_DELETE = 0x2
|
||||
sysRTM_CHANGE = 0x3
|
||||
sysRTM_GET = 0x4
|
||||
sysRTM_LOSING = 0x5
|
||||
sysRTM_REDIRECT = 0x6
|
||||
sysRTM_MISS = 0x7
|
||||
sysRTM_LOCK = 0x8
|
||||
sysRTM_RESOLVE = 0xb
|
||||
sysRTM_NEWADDR = 0xc
|
||||
sysRTM_DELADDR = 0xd
|
||||
sysRTM_IFINFO = 0xe
|
||||
sysRTM_NEWMADDR = 0xf
|
||||
sysRTM_DELMADDR = 0x10
|
||||
sysRTM_IFANNOUNCE = 0x11
|
||||
sysRTM_IEEE80211 = 0x12
|
||||
|
||||
sysRTA_DST = 0x1
|
||||
sysRTA_GATEWAY = 0x2
|
||||
sysRTA_NETMASK = 0x4
|
||||
sysRTA_GENMASK = 0x8
|
||||
sysRTA_IFP = 0x10
|
||||
sysRTA_IFA = 0x20
|
||||
sysRTA_AUTHOR = 0x40
|
||||
sysRTA_BRD = 0x80
|
||||
|
||||
sysRTAX_DST = 0x0
|
||||
sysRTAX_GATEWAY = 0x1
|
||||
sysRTAX_NETMASK = 0x2
|
||||
sysRTAX_GENMASK = 0x3
|
||||
sysRTAX_IFP = 0x4
|
||||
sysRTAX_IFA = 0x5
|
||||
sysRTAX_AUTHOR = 0x6
|
||||
sysRTAX_BRD = 0x7
|
||||
sysRTAX_MAX = 0x8
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrlFreeBSD10 = 0xb0
|
||||
sizeofIfaMsghdrFreeBSD10 = 0x14
|
||||
|
||||
@@ -3,86 +3,6 @@
|
||||
|
||||
package route
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = 0x0
|
||||
sysAF_INET = 0x2
|
||||
sysAF_ROUTE = 0x22
|
||||
sysAF_LINK = 0x12
|
||||
sysAF_INET6 = 0x18
|
||||
|
||||
sysSOCK_RAW = 0x3
|
||||
|
||||
sysNET_RT_DUMP = 0x1
|
||||
sysNET_RT_FLAGS = 0x2
|
||||
sysNET_RT_IFLIST = 0x5
|
||||
sysNET_RT_MAXID = 0x6
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = 0xc
|
||||
|
||||
sysCTL_UNSPEC = 0x0
|
||||
sysCTL_KERN = 0x1
|
||||
sysCTL_VM = 0x2
|
||||
sysCTL_VFS = 0x3
|
||||
sysCTL_NET = 0x4
|
||||
sysCTL_DEBUG = 0x5
|
||||
sysCTL_HW = 0x6
|
||||
sysCTL_MACHDEP = 0x7
|
||||
sysCTL_USER = 0x8
|
||||
sysCTL_DDB = 0x9
|
||||
sysCTL_PROC = 0xa
|
||||
sysCTL_VENDOR = 0xb
|
||||
sysCTL_EMUL = 0xc
|
||||
sysCTL_SECURITY = 0xd
|
||||
sysCTL_MAXID = 0xe
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = 0x4
|
||||
|
||||
sysRTM_ADD = 0x1
|
||||
sysRTM_DELETE = 0x2
|
||||
sysRTM_CHANGE = 0x3
|
||||
sysRTM_GET = 0x4
|
||||
sysRTM_LOSING = 0x5
|
||||
sysRTM_REDIRECT = 0x6
|
||||
sysRTM_MISS = 0x7
|
||||
sysRTM_LOCK = 0x8
|
||||
sysRTM_OLDADD = 0x9
|
||||
sysRTM_OLDDEL = 0xa
|
||||
sysRTM_RESOLVE = 0xb
|
||||
sysRTM_NEWADDR = 0xc
|
||||
sysRTM_DELADDR = 0xd
|
||||
sysRTM_IFANNOUNCE = 0x10
|
||||
sysRTM_IEEE80211 = 0x11
|
||||
sysRTM_SETGATE = 0x12
|
||||
sysRTM_LLINFO_UPD = 0x13
|
||||
sysRTM_IFINFO = 0x14
|
||||
sysRTM_CHGADDR = 0x15
|
||||
|
||||
sysRTA_DST = 0x1
|
||||
sysRTA_GATEWAY = 0x2
|
||||
sysRTA_NETMASK = 0x4
|
||||
sysRTA_GENMASK = 0x8
|
||||
sysRTA_IFP = 0x10
|
||||
sysRTA_IFA = 0x20
|
||||
sysRTA_AUTHOR = 0x40
|
||||
sysRTA_BRD = 0x80
|
||||
sysRTA_TAG = 0x100
|
||||
|
||||
sysRTAX_DST = 0x0
|
||||
sysRTAX_GATEWAY = 0x1
|
||||
sysRTAX_NETMASK = 0x2
|
||||
sysRTAX_GENMASK = 0x3
|
||||
sysRTAX_IFP = 0x4
|
||||
sysRTAX_IFA = 0x5
|
||||
sysRTAX_AUTHOR = 0x6
|
||||
sysRTAX_BRD = 0x7
|
||||
sysRTAX_TAG = 0x8
|
||||
sysRTAX_MAX = 0x9
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofIfMsghdrNetBSD7 = 0x98
|
||||
sizeofIfaMsghdrNetBSD7 = 0x18
|
||||
|
||||
@@ -3,95 +3,6 @@
|
||||
|
||||
package route
|
||||
|
||||
const (
|
||||
sysAF_UNSPEC = 0x0
|
||||
sysAF_INET = 0x2
|
||||
sysAF_ROUTE = 0x11
|
||||
sysAF_LINK = 0x12
|
||||
sysAF_INET6 = 0x18
|
||||
|
||||
sysSOCK_RAW = 0x3
|
||||
|
||||
sysNET_RT_DUMP = 0x1
|
||||
sysNET_RT_FLAGS = 0x2
|
||||
sysNET_RT_IFLIST = 0x3
|
||||
sysNET_RT_STATS = 0x4
|
||||
sysNET_RT_TABLE = 0x5
|
||||
sysNET_RT_IFNAMES = 0x6
|
||||
sysNET_RT_MAXID = 0x7
|
||||
)
|
||||
|
||||
const (
|
||||
sysCTL_MAXNAME = 0xc
|
||||
|
||||
sysCTL_UNSPEC = 0x0
|
||||
sysCTL_KERN = 0x1
|
||||
sysCTL_VM = 0x2
|
||||
sysCTL_FS = 0x3
|
||||
sysCTL_NET = 0x4
|
||||
sysCTL_DEBUG = 0x5
|
||||
sysCTL_HW = 0x6
|
||||
sysCTL_MACHDEP = 0x7
|
||||
sysCTL_DDB = 0x9
|
||||
sysCTL_VFS = 0xa
|
||||
sysCTL_MAXID = 0xb
|
||||
)
|
||||
|
||||
const (
|
||||
sysRTM_VERSION = 0x5
|
||||
|
||||
sysRTM_ADD = 0x1
|
||||
sysRTM_DELETE = 0x2
|
||||
sysRTM_CHANGE = 0x3
|
||||
sysRTM_GET = 0x4
|
||||
sysRTM_LOSING = 0x5
|
||||
sysRTM_REDIRECT = 0x6
|
||||
sysRTM_MISS = 0x7
|
||||
sysRTM_LOCK = 0x8
|
||||
sysRTM_RESOLVE = 0xb
|
||||
sysRTM_NEWADDR = 0xc
|
||||
sysRTM_DELADDR = 0xd
|
||||
sysRTM_IFINFO = 0xe
|
||||
sysRTM_IFANNOUNCE = 0xf
|
||||
sysRTM_DESYNC = 0x10
|
||||
sysRTM_INVALIDATE = 0x11
|
||||
sysRTM_BFD = 0x12
|
||||
sysRTM_PROPOSAL = 0x13
|
||||
|
||||
sysRTA_DST = 0x1
|
||||
sysRTA_GATEWAY = 0x2
|
||||
sysRTA_NETMASK = 0x4
|
||||
sysRTA_GENMASK = 0x8
|
||||
sysRTA_IFP = 0x10
|
||||
sysRTA_IFA = 0x20
|
||||
sysRTA_AUTHOR = 0x40
|
||||
sysRTA_BRD = 0x80
|
||||
sysRTA_SRC = 0x100
|
||||
sysRTA_SRCMASK = 0x200
|
||||
sysRTA_LABEL = 0x400
|
||||
sysRTA_BFD = 0x800
|
||||
sysRTA_DNS = 0x1000
|
||||
sysRTA_STATIC = 0x2000
|
||||
sysRTA_SEARCH = 0x4000
|
||||
|
||||
sysRTAX_DST = 0x0
|
||||
sysRTAX_GATEWAY = 0x1
|
||||
sysRTAX_NETMASK = 0x2
|
||||
sysRTAX_GENMASK = 0x3
|
||||
sysRTAX_IFP = 0x4
|
||||
sysRTAX_IFA = 0x5
|
||||
sysRTAX_AUTHOR = 0x6
|
||||
sysRTAX_BRD = 0x7
|
||||
sysRTAX_SRC = 0x8
|
||||
sysRTAX_SRCMASK = 0x9
|
||||
sysRTAX_LABEL = 0xa
|
||||
sysRTAX_BFD = 0xb
|
||||
sysRTAX_DNS = 0xc
|
||||
sysRTAX_STATIC = 0xd
|
||||
sysRTAX_SEARCH = 0xe
|
||||
sysRTAX_MAX = 0xf
|
||||
)
|
||||
|
||||
const (
|
||||
sizeofRtMsghdr = 0x60
|
||||
|
||||
|
||||
Reference in New Issue
Block a user