summaryrefslogtreecommitdiff
path: root/debian/patches/src_libgo_go_syscall_socket_gnu.go.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/src_libgo_go_syscall_socket_gnu.go.diff')
-rw-r--r--debian/patches/src_libgo_go_syscall_socket_gnu.go.diff93
1 files changed, 93 insertions, 0 deletions
diff --git a/debian/patches/src_libgo_go_syscall_socket_gnu.go.diff b/debian/patches/src_libgo_go_syscall_socket_gnu.go.diff
new file mode 100644
index 0000000..3c3f6bb
--- /dev/null
+++ b/debian/patches/src_libgo_go_syscall_socket_gnu.go.diff
@@ -0,0 +1,93 @@
+Index: gcc-6-6.2.1-4.1/src/libgo/go/syscall/socket_gnu.go
+===================================================================
+--- /dev/null
++++ gcc-6-6.2.1-4.1/src/libgo/go/syscall/socket_gnu.go
+@@ -0,0 +1,88 @@
++// socket_gnu.go -- Socket handling specific to GNU/Hurd.
++
++// Copyright 2010 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.
++
++package syscall
++
++import "unsafe"
++
++const SizeofSockaddrInet4 = 16
++const SizeofSockaddrInet6 = 28
++const SizeofSockaddrUnix = 110
++
++type RawSockaddrInet4 struct {
++ Len uint8
++ Family uint8
++ Port uint16
++ Addr [4]byte /* in_addr */
++ Zero [8]uint8
++}
++
++func (sa *RawSockaddrInet4) setLen() Socklen_t {
++ sa.Len = SizeofSockaddrInet4
++ return SizeofSockaddrInet4
++}
++
++type RawSockaddrInet6 struct {
++ Len uint8
++ Family uint8
++ Port uint16
++ Flowinfo uint32
++ Addr [16]byte /* in6_addr */
++ Scope_id uint32
++}
++
++func (sa *RawSockaddrInet6) setLen() Socklen_t {
++ sa.Len = SizeofSockaddrInet6
++ return SizeofSockaddrInet6
++}
++
++type RawSockaddrUnix struct {
++ Len uint8
++ Family uint8
++ Path [108]int8
++}
++
++func (sa *RawSockaddrUnix) setLen(n int) {
++ sa.Len = uint8(3 + n) // 2 for Family, Len; 1 for NUL.
++}
++
++func (sa *RawSockaddrUnix) getLen() (int, error) {
++ if sa.Len < 3 || sa.Len > SizeofSockaddrUnix {
++ return 0, EINVAL
++ }
++ // Assume path ends at NUL.
++ n := 0
++ for n < len(sa.Path) && sa.Path[n] != 0 {
++ n++
++ }
++ return n, nil
++}
++
++func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t {
++ return sl
++}
++
++type RawSockaddr struct {
++ Len uint8
++ Family uint8
++ Data [14]int8
++}
++
++// BindToDevice binds the socket associated with fd to device.
++func BindToDevice(fd int, device string) (err error) {
++ return ENOSYS
++}
++
++func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, error) {
++ return nil, EAFNOSUPPORT
++}
++
++func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
++ var value IPv6MTUInfo
++ vallen := Socklen_t(SizeofIPv6MTUInfo)
++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
++ return &value, err
++}