From 175a9dfeba204702c99780acb81bd7663a595c66 Mon Sep 17 00:00:00 2001 From: Stephan Klatt Date: Tue, 18 Aug 2020 15:32:22 +0200 Subject: [PATCH] unix: extend support for AF_CAN Add AF_CAN support to anyToSockaddr() Fixes golang/go#40842 --- unix/syscall_linux.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/unix/syscall_linux.go b/unix/syscall_linux.go index c48f5dda..3e20fcf5 100644 --- a/unix/syscall_linux.go +++ b/unix/syscall_linux.go @@ -1111,6 +1111,21 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { } return sa, nil + case AF_CAN: + pp := (*RawSockaddrCAN)(unsafe.Pointer(rsa)) + sa := &SockaddrCAN{ + Ifindex: int(pp.Ifindex), + } + rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) + for i := 0; i < 4; i++ { + rx[i] = pp.Addr[i] + } + tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) + for i := 0; i < 4; i++ { + tx[i] = pp.Addr[i+4] + } + return sa, nil + } return nil, EAFNOSUPPORT }