Vendor dependencies with dep
This commit is contained in:
parent
df8a5792f1
commit
91edebf1fe
1691 changed files with 466360 additions and 0 deletions
72
vendor/golang.org/x/net/route/message.go
generated
vendored
Normal file
72
vendor/golang.org/x/net/route/message.go
generated
vendored
Normal file
|
@ -0,0 +1,72 @@
|
|||
// Copyright 2016 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build darwin dragonfly freebsd netbsd openbsd
|
||||
|
||||
package route
|
||||
|
||||
// A Message represents a routing message.
|
||||
type Message interface {
|
||||
// Sys returns operating system-specific information.
|
||||
Sys() []Sys
|
||||
}
|
||||
|
||||
// A Sys reprensents operating system-specific information.
|
||||
type Sys interface {
|
||||
// SysType returns a type of operating system-specific
|
||||
// information.
|
||||
SysType() SysType
|
||||
}
|
||||
|
||||
// A SysType represents a type of operating system-specific
|
||||
// information.
|
||||
type SysType int
|
||||
|
||||
const (
|
||||
SysMetrics SysType = iota
|
||||
SysStats
|
||||
)
|
||||
|
||||
// ParseRIB parses b as a routing information base and returns a list
|
||||
// of routing messages.
|
||||
func ParseRIB(typ RIBType, b []byte) ([]Message, error) {
|
||||
if !typ.parseable() {
|
||||
return nil, errUnsupportedMessage
|
||||
}
|
||||
var msgs []Message
|
||||
nmsgs, nskips := 0, 0
|
||||
for len(b) > 4 {
|
||||
nmsgs++
|
||||
l := int(nativeEndian.Uint16(b[:2]))
|
||||
if l == 0 {
|
||||
return nil, errInvalidMessage
|
||||
}
|
||||
if len(b) < l {
|
||||
return nil, errMessageTooShort
|
||||
}
|
||||
if b[2] != sysRTM_VERSION {
|
||||
b = b[l:]
|
||||
continue
|
||||
}
|
||||
if w, ok := wireFormats[int(b[3])]; !ok {
|
||||
nskips++
|
||||
} else {
|
||||
m, err := w.parse(typ, b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if m == nil {
|
||||
nskips++
|
||||
} else {
|
||||
msgs = append(msgs, m)
|
||||
}
|
||||
}
|
||||
b = b[l:]
|
||||
}
|
||||
// We failed to parse any of the messages - version mismatch?
|
||||
if nmsgs != len(msgs)+nskips {
|
||||
return nil, errMessageMismatch
|
||||
}
|
||||
return msgs, nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue