]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.4] syscall: fix the deprecated way of parsing routing message...
authorMikio Hara <mikioh.mikioh@gmail.com>
Mon, 22 Dec 2014 03:30:16 +0000 (12:30 +0900)
committerRuss Cox <rsc@golang.org>
Wed, 14 Jan 2015 23:54:43 +0000 (23:54 +0000)
OpenBSD 5.5 changed its kernel ABI and OpenBSD 5.6 enabled it.
This CL works on both 5.5 and 5.6.

Fixes #9102.

Change-Id: I4a295be9ab8acbc99e550d8cb7e8f8dacf3a03c5
Reviewed-on: https://go-review.googlesource.com/1932
Reviewed-by: Ian Lance Taylor <iant@golang.org>
(cherry picked from commit 13e16b39fc269fcba3383bd6c133da3e0e0345e9)
Reviewed-on: https://go-review.googlesource.com/2826
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/syscall/route_openbsd.go

index 19f902db74b33cd2a879616b9c331a8e620e5bad..e5086400c5d40b9f2779f84233268502ff72edba 100644 (file)
@@ -12,16 +12,16 @@ 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]}
+               return &RouteMessage{Header: p.Header, Data: b[p.Header.Hdrlen:any.Msglen]}
        case RTM_IFINFO:
                p := (*InterfaceMessage)(unsafe.Pointer(any))
-               return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]}
+               return &InterfaceMessage{Header: p.Header, Data: b[p.Header.Hdrlen:any.Msglen]}
        case RTM_IFANNOUNCE:
                p := (*InterfaceAnnounceMessage)(unsafe.Pointer(any))
                return &InterfaceAnnounceMessage{Header: p.Header}
        case RTM_NEWADDR, RTM_DELADDR:
                p := (*InterfaceAddrMessage)(unsafe.Pointer(any))
-               return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]}
+               return &InterfaceAddrMessage{Header: p.Header, Data: b[p.Header.Hdrlen:any.Msglen]}
        }
        return nil
 }