mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-15 01:53:51 -06:00
The original contents of `vendor` were inadvertently captured with an older version of `godep`. Here, we recapture dependencies by running the following: ``` godep restore -v cat Godeps/Godeps.json | jq -r '.Deps[].ImportPath' | xargs godep update -v ``` The newer godep makes the following changes as it captures dependencies: * Skips test files * Copies `LICENSE` / `PATENTS` files There is also an additional diff in `golang.org/x/sys/unix` that looks very similar to the diff between `master..c65f27f` in that repo, so I'm guessing that dependency was accidentally captured from master instead of the commit saved to `Godeps.json`. All in all, these changes should all be "more correct" and result in smaller diffs for any future updates made to dependencies.
62 lines
1.8 KiB
Go
62 lines
1.8 KiB
Go
// Copyright 2011 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.
|
|
|
|
// Routing sockets and messages for Darwin
|
|
|
|
package unix
|
|
|
|
import "unsafe"
|
|
|
|
func (any *anyMessage) toRoutingMessage(b []byte) RoutingMessage {
|
|
switch any.Type {
|
|
case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE:
|
|
p := (*RouteMessage)(unsafe.Pointer(any))
|
|
return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]}
|
|
case RTM_IFINFO:
|
|
p := (*InterfaceMessage)(unsafe.Pointer(any))
|
|
return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]}
|
|
case RTM_NEWADDR, RTM_DELADDR:
|
|
p := (*InterfaceAddrMessage)(unsafe.Pointer(any))
|
|
return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]}
|
|
case RTM_NEWMADDR2, RTM_DELMADDR:
|
|
p := (*InterfaceMulticastAddrMessage)(unsafe.Pointer(any))
|
|
return &InterfaceMulticastAddrMessage{Header: p.Header, Data: b[SizeofIfmaMsghdr2:any.Msglen]}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// InterfaceMulticastAddrMessage represents a routing message
|
|
// containing network interface address entries.
|
|
type InterfaceMulticastAddrMessage struct {
|
|
Header IfmaMsghdr2
|
|
Data []byte
|
|
}
|
|
|
|
const rtaIfmaMask = RTA_GATEWAY | RTA_IFP | RTA_IFA
|
|
|
|
func (m *InterfaceMulticastAddrMessage) sockaddr() (sas []Sockaddr) {
|
|
if m.Header.Addrs&rtaIfmaMask == 0 {
|
|
return nil
|
|
}
|
|
b := m.Data[:]
|
|
for i := uint(0); i < RTAX_MAX; i++ {
|
|
if m.Header.Addrs&rtaIfmaMask&(1<<i) == 0 {
|
|
continue
|
|
}
|
|
rsa := (*RawSockaddr)(unsafe.Pointer(&b[0]))
|
|
switch i {
|
|
case RTAX_IFA:
|
|
sa, e := anyToSockaddr((*RawSockaddrAny)(unsafe.Pointer(rsa)))
|
|
if e != nil {
|
|
return nil
|
|
}
|
|
sas = append(sas, sa)
|
|
case RTAX_GATEWAY, RTAX_IFP:
|
|
// nothing to do
|
|
}
|
|
b = b[rsaAlignOf(int(rsa.Len)):]
|
|
}
|
|
return sas
|
|
}
|