1 // Copyright 2011 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
9 func (any
*anyMessage
) toRoutingMessage(b
[]byte) RoutingMessage
{
11 case RTM_ADD
, RTM_DELETE
, RTM_CHANGE
, RTM_GET
, RTM_LOSING
, RTM_REDIRECT
, RTM_MISS
, RTM_LOCK
, RTM_RESOLVE
:
12 p
:= (*RouteMessage
)(unsafe
.Pointer(any
))
13 // We don't support sockaddr_rtlabel for now.
14 p
.Header
.Addrs
&= RTA_DST | RTA_GATEWAY | RTA_NETMASK | RTA_GENMASK | RTA_IFA | RTA_IFP | RTA_BRD | RTA_AUTHOR | RTA_SRC | RTA_SRCMASK
15 return &RouteMessage
{Header
: p
.Header
, Data
: b
[p
.Header
.Hdrlen
:any
.Msglen
]}
17 p
:= (*InterfaceMessage
)(unsafe
.Pointer(any
))
18 return &InterfaceMessage
{Header
: p
.Header
, Data
: b
[p
.Header
.Hdrlen
:any
.Msglen
]}
20 p
:= (*InterfaceAnnounceMessage
)(unsafe
.Pointer(any
))
21 return &InterfaceAnnounceMessage
{Header
: p
.Header
}
22 case RTM_NEWADDR
, RTM_DELADDR
:
23 p
:= (*InterfaceAddrMessage
)(unsafe
.Pointer(any
))
24 return &InterfaceAddrMessage
{Header
: p
.Header
, Data
: b
[p
.Header
.Hdrlen
:any
.Msglen
]}
29 // InterfaceAnnounceMessage represents a routing message containing
30 // network interface arrival and departure information.
32 // Deprecated: Use golang.org/x/net/route instead.
33 type InterfaceAnnounceMessage
struct {
34 Header IfAnnounceMsghdr
37 func (m
*InterfaceAnnounceMessage
) sockaddr() ([]Sockaddr
, error
) { return nil, nil }