Commit 4d8d1383 authored by Russ Cox's avatar Russ Cox

vendor/golang_org/x/net/route: refresh from upstream

This picks up a few changes and should stop the macOS crashes.

Fixes #22456.

Change-Id: I7e0aae119a5564fcfaa16eeab7422bdd5ff0497b
Reviewed-on: https://go-review.googlesource.com/73691
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: default avatarAustin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent bd48d37e
...@@ -69,6 +69,9 @@ const ( ...@@ -69,6 +69,9 @@ const (
sysRTM_IFINFO = C.RTM_IFINFO sysRTM_IFINFO = C.RTM_IFINFO
sysRTM_IFANNOUNCE = C.RTM_IFANNOUNCE sysRTM_IFANNOUNCE = C.RTM_IFANNOUNCE
sysRTM_DESYNC = C.RTM_DESYNC 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_DST = C.RTA_DST
sysRTA_GATEWAY = C.RTA_GATEWAY sysRTA_GATEWAY = C.RTA_GATEWAY
...@@ -81,6 +84,10 @@ const ( ...@@ -81,6 +84,10 @@ const (
sysRTA_SRC = C.RTA_SRC sysRTA_SRC = C.RTA_SRC
sysRTA_SRCMASK = C.RTA_SRCMASK sysRTA_SRCMASK = C.RTA_SRCMASK
sysRTA_LABEL = C.RTA_LABEL 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_DST = C.RTAX_DST
sysRTAX_GATEWAY = C.RTAX_GATEWAY sysRTAX_GATEWAY = C.RTAX_GATEWAY
...@@ -93,6 +100,10 @@ const ( ...@@ -93,6 +100,10 @@ const (
sysRTAX_SRC = C.RTAX_SRC sysRTAX_SRC = C.RTAX_SRC
sysRTAX_SRCMASK = C.RTAX_SRCMASK sysRTAX_SRCMASK = C.RTAX_SRCMASK
sysRTAX_LABEL = C.RTAX_LABEL 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 sysRTAX_MAX = C.RTAX_MAX
) )
......
...@@ -6,7 +6,10 @@ ...@@ -6,7 +6,10 @@
package route package route
import "syscall" import (
"runtime"
"syscall"
)
func (m *RouteMessage) marshal() ([]byte, error) { func (m *RouteMessage) marshal() ([]byte, error) {
w, ok := wireFormats[m.Type] w, ok := wireFormats[m.Type]
...@@ -14,6 +17,11 @@ func (m *RouteMessage) marshal() ([]byte, error) { ...@@ -14,6 +17,11 @@ func (m *RouteMessage) marshal() ([]byte, error) {
return nil, errUnsupportedMessage return nil, errUnsupportedMessage
} }
l := w.bodyOff + addrsSpace(m.Addrs) l := w.bodyOff + addrsSpace(m.Addrs)
if runtime.GOOS == "darwin" {
// Fix stray pointer writes on macOS.
// See golang.org/issue/22456.
l += 1024
}
b := make([]byte, l) b := make([]byte, l)
nativeEndian.PutUint16(b[:2], uint16(l)) nativeEndian.PutUint16(b[:2], uint16(l))
if m.Version == 0 { if m.Version == 0 {
......
...@@ -74,6 +74,10 @@ var addrAttrNames = [...]string{ ...@@ -74,6 +74,10 @@ var addrAttrNames = [...]string{
"df:mpls1-n:tag-o:src", // mpls1 for dragonfly, tag for netbsd, src for openbsd "df:mpls1-n:tag-o:src", // mpls1 for dragonfly, tag for netbsd, src for openbsd
"df:mpls2-o:srcmask", // mpls2 for dragonfly, srcmask for openbsd "df:mpls2-o:srcmask", // mpls2 for dragonfly, srcmask for openbsd
"df:mpls3-o:label", // mpls3 for dragonfly, label for openbsd "df:mpls3-o:label", // mpls3 for dragonfly, label for openbsd
"o:bfd", // bfd for openbsd
"o:dns", // dns for openbsd
"o:static", // static for openbsd
"o:search", // search for openbsd
} }
func (attrs addrAttrs) String() string { func (attrs addrAttrs) String() string {
......
...@@ -13,7 +13,7 @@ func (typ RIBType) parseable() bool { ...@@ -13,7 +13,7 @@ func (typ RIBType) parseable() bool {
} }
} }
// A RouteMetrics represents route metrics. // RouteMetrics represents route metrics.
type RouteMetrics struct { type RouteMetrics struct {
PathMTU int // path maximum transmission unit PathMTU int // path maximum transmission unit
} }
...@@ -30,7 +30,7 @@ func (m *RouteMessage) Sys() []Sys { ...@@ -30,7 +30,7 @@ func (m *RouteMessage) Sys() []Sys {
} }
} }
// A InterfaceMetrics represents interface metrics. // InterfaceMetrics represents interface metrics.
type InterfaceMetrics struct { type InterfaceMetrics struct {
Type int // interface type Type int // interface type
MTU int // maximum transmission unit MTU int // maximum transmission unit
......
...@@ -8,7 +8,7 @@ import "unsafe" ...@@ -8,7 +8,7 @@ import "unsafe"
func (typ RIBType) parseable() bool { return true } func (typ RIBType) parseable() bool { return true }
// A RouteMetrics represents route metrics. // RouteMetrics represents route metrics.
type RouteMetrics struct { type RouteMetrics struct {
PathMTU int // path maximum transmission unit PathMTU int // path maximum transmission unit
} }
...@@ -25,7 +25,7 @@ func (m *RouteMessage) Sys() []Sys { ...@@ -25,7 +25,7 @@ func (m *RouteMessage) Sys() []Sys {
} }
} }
// A InterfaceMetrics represents interface metrics. // InterfaceMetrics represents interface metrics.
type InterfaceMetrics struct { type InterfaceMetrics struct {
Type int // interface type Type int // interface type
MTU int // maximum transmission unit MTU int // maximum transmission unit
......
...@@ -11,7 +11,7 @@ import ( ...@@ -11,7 +11,7 @@ import (
func (typ RIBType) parseable() bool { return true } func (typ RIBType) parseable() bool { return true }
// A RouteMetrics represents route metrics. // RouteMetrics represents route metrics.
type RouteMetrics struct { type RouteMetrics struct {
PathMTU int // path maximum transmission unit PathMTU int // path maximum transmission unit
} }
...@@ -35,7 +35,7 @@ func (m *RouteMessage) Sys() []Sys { ...@@ -35,7 +35,7 @@ func (m *RouteMessage) Sys() []Sys {
} }
} }
// A InterfaceMetrics represents interface metrics. // InterfaceMetrics represents interface metrics.
type InterfaceMetrics struct { type InterfaceMetrics struct {
Type int // interface type Type int // interface type
MTU int // maximum transmission unit MTU int // maximum transmission unit
......
...@@ -6,7 +6,7 @@ package route ...@@ -6,7 +6,7 @@ package route
func (typ RIBType) parseable() bool { return true } func (typ RIBType) parseable() bool { return true }
// A RouteMetrics represents route metrics. // RouteMetrics represents route metrics.
type RouteMetrics struct { type RouteMetrics struct {
PathMTU int // path maximum transmission unit PathMTU int // path maximum transmission unit
} }
...@@ -23,7 +23,7 @@ func (m *RouteMessage) Sys() []Sys { ...@@ -23,7 +23,7 @@ func (m *RouteMessage) Sys() []Sys {
} }
} }
// A InterfaceMetrics represents interface metrics. // RouteMetrics represents route metrics.
type InterfaceMetrics struct { type InterfaceMetrics struct {
Type int // interface type Type int // interface type
MTU int // maximum transmission unit MTU int // maximum transmission unit
......
...@@ -15,7 +15,7 @@ func (typ RIBType) parseable() bool { ...@@ -15,7 +15,7 @@ func (typ RIBType) parseable() bool {
} }
} }
// A RouteMetrics represents route metrics. // RouteMetrics represents route metrics.
type RouteMetrics struct { type RouteMetrics struct {
PathMTU int // path maximum transmission unit PathMTU int // path maximum transmission unit
} }
...@@ -32,7 +32,7 @@ func (m *RouteMessage) Sys() []Sys { ...@@ -32,7 +32,7 @@ func (m *RouteMessage) Sys() []Sys {
} }
} }
// A InterfaceMetrics represents interface metrics. // InterfaceMetrics represents interface metrics.
type InterfaceMetrics struct { type InterfaceMetrics struct {
Type int // interface type Type int // interface type
MTU int // maximum transmission unit MTU int // maximum transmission unit
...@@ -75,5 +75,6 @@ func probeRoutingStack() (int, map[int]*wireFormat) { ...@@ -75,5 +75,6 @@ func probeRoutingStack() (int, map[int]*wireFormat) {
sysRTM_DELADDR: ifam, sysRTM_DELADDR: ifam,
sysRTM_IFINFO: ifm, sysRTM_IFINFO: ifm,
sysRTM_IFANNOUNCE: ifanm, sysRTM_IFANNOUNCE: ifanm,
sysRTM_DESYNC: rtm,
} }
} }
...@@ -54,6 +54,9 @@ const ( ...@@ -54,6 +54,9 @@ const (
sysRTM_IFINFO = 0xe sysRTM_IFINFO = 0xe
sysRTM_IFANNOUNCE = 0xf sysRTM_IFANNOUNCE = 0xf
sysRTM_DESYNC = 0x10 sysRTM_DESYNC = 0x10
sysRTM_INVALIDATE = 0x11
sysRTM_BFD = 0x12
sysRTM_PROPOSAL = 0x13
sysRTA_DST = 0x1 sysRTA_DST = 0x1
sysRTA_GATEWAY = 0x2 sysRTA_GATEWAY = 0x2
...@@ -66,6 +69,10 @@ const ( ...@@ -66,6 +69,10 @@ const (
sysRTA_SRC = 0x100 sysRTA_SRC = 0x100
sysRTA_SRCMASK = 0x200 sysRTA_SRCMASK = 0x200
sysRTA_LABEL = 0x400 sysRTA_LABEL = 0x400
sysRTA_BFD = 0x800
sysRTA_DNS = 0x1000
sysRTA_STATIC = 0x2000
sysRTA_SEARCH = 0x4000
sysRTAX_DST = 0x0 sysRTAX_DST = 0x0
sysRTAX_GATEWAY = 0x1 sysRTAX_GATEWAY = 0x1
...@@ -78,7 +85,11 @@ const ( ...@@ -78,7 +85,11 @@ const (
sysRTAX_SRC = 0x8 sysRTAX_SRC = 0x8
sysRTAX_SRCMASK = 0x9 sysRTAX_SRCMASK = 0x9
sysRTAX_LABEL = 0xa sysRTAX_LABEL = 0xa
sysRTAX_MAX = 0xb sysRTAX_BFD = 0xb
sysRTAX_DNS = 0xc
sysRTAX_STATIC = 0xd
sysRTAX_SEARCH = 0xe
sysRTAX_MAX = 0xf
) )
const ( const (
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment