From 3c90d159f85eb9f8604e633de35e5864ffa62399 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 31 Aug 2020 18:59:22 +0200 Subject: [PATCH] vendor: golang.org/x/net ab34263943818b32f575efc978a3d24e80b04bd7 Signed-off-by: Sebastiaan van Stijn --- libnetwork/vendor.conf | 2 +- .../vendor/golang.org/x/net/bpf/constants.go | 24 ++- .../golang.org/x/net/bpf/instructions.go | 194 ++++++++++-------- libnetwork/vendor/golang.org/x/net/bpf/vm.go | 10 + .../golang.org/x/net/bpf/vm_instructions.go | 38 ++-- libnetwork/vendor/golang.org/x/net/go.mod | 9 + .../x/net/internal/socket/cmsghdr.go | 2 +- .../x/net/internal/socket/cmsghdr_bsd.go | 2 +- .../internal/socket/cmsghdr_linux_64bit.go | 2 +- .../x/net/internal/socket/cmsghdr_stub.go | 2 +- .../golang.org/x/net/internal/socket/empty.s | 7 + .../x/net/internal/socket/error_unix.go | 2 +- .../x/net/internal/socket/iovec_64bit.go | 4 +- .../x/net/internal/socket/iovec_stub.go | 2 +- .../x/net/internal/socket/mmsghdr_stub.go | 2 +- .../x/net/internal/socket/mmsghdr_unix.go | 2 +- .../x/net/internal/socket/msghdr_bsd.go | 2 +- .../x/net/internal/socket/msghdr_bsdvar.go | 2 +- .../net/internal/socket/msghdr_linux_64bit.go | 2 +- .../x/net/internal/socket/msghdr_stub.go | 2 +- .../x/net/internal/socket/norace.go | 12 ++ .../golang.org/x/net/internal/socket/race.go | 37 ++++ .../x/net/internal/socket/rawconn.go | 2 - .../x/net/internal/socket/rawconn_mmsg.go | 7 +- .../x/net/internal/socket/rawconn_msg.go | 5 +- .../x/net/internal/socket/rawconn_nommsg.go | 7 +- .../x/net/internal/socket/rawconn_nomsg.go | 9 +- .../x/net/internal/socket/rawconn_stub.go | 25 --- .../x/net/internal/socket/reflect.go | 62 ------ .../x/net/internal/socket/socket.go | 3 + .../golang.org/x/net/internal/socket/sys.go | 2 +- .../x/net/internal/socket/sys_bsd.go | 8 +- .../x/net/internal/socket/sys_bsdvar.go | 13 +- .../x/net/internal/socket/sys_const_unix.go | 17 ++ .../x/net/internal/socket/sys_dragonfly.go | 27 ++- .../net/internal/socket/sys_go1_11_darwin.go | 33 +++ .../x/net/internal/socket/sys_linkname.go | 42 ++++ .../net/internal/socket/sys_linux_riscv64.go | 12 ++ .../x/net/internal/socket/sys_posix.go | 45 ++-- .../x/net/internal/socket/sys_solaris.go | 5 +- .../x/net/internal/socket/sys_stub.go | 17 +- .../x/net/internal/socket/sys_unix.go | 2 +- .../x/net/internal/socket/sys_windows.go | 19 +- .../x/net/internal/socket/zsys_aix_ppc64.go | 60 ++++++ .../x/net/internal/socket/zsys_darwin_386.go | 10 +- .../net/internal/socket/zsys_darwin_amd64.go | 10 +- .../x/net/internal/socket/zsys_darwin_arm.go | 10 +- .../net/internal/socket/zsys_darwin_arm64.go | 10 +- .../internal/socket/zsys_dragonfly_amd64.go | 10 +- .../x/net/internal/socket/zsys_freebsd_386.go | 10 +- .../net/internal/socket/zsys_freebsd_amd64.go | 10 +- .../x/net/internal/socket/zsys_freebsd_arm.go | 10 +- .../net/internal/socket/zsys_freebsd_arm64.go | 53 +++++ .../x/net/internal/socket/zsys_linux_386.go | 11 +- .../x/net/internal/socket/zsys_linux_amd64.go | 11 +- .../x/net/internal/socket/zsys_linux_arm.go | 16 +- .../x/net/internal/socket/zsys_linux_arm64.go | 16 +- .../x/net/internal/socket/zsys_linux_mips.go | 16 +- .../net/internal/socket/zsys_linux_mips64.go | 16 +- .../internal/socket/zsys_linux_mips64le.go | 16 +- .../net/internal/socket/zsys_linux_mipsle.go | 16 +- .../x/net/internal/socket/zsys_linux_ppc64.go | 16 +- .../net/internal/socket/zsys_linux_ppc64le.go | 16 +- .../net/internal/socket/zsys_linux_riscv64.go | 59 ++++++ .../x/net/internal/socket/zsys_linux_s390x.go | 16 +- .../x/net/internal/socket/zsys_netbsd_386.go | 16 +- .../net/internal/socket/zsys_netbsd_amd64.go | 16 +- .../x/net/internal/socket/zsys_netbsd_arm.go | 16 +- .../net/internal/socket/zsys_netbsd_arm64.go | 59 ++++++ .../x/net/internal/socket/zsys_openbsd_386.go | 10 +- .../net/internal/socket/zsys_openbsd_amd64.go | 10 +- .../x/net/internal/socket/zsys_openbsd_arm.go | 10 +- .../net/internal/socket/zsys_openbsd_arm64.go | 53 +++++ .../net/internal/socket/zsys_solaris_amd64.go | 10 +- .../golang.org/x/net/internal/socks/socks.go | 3 +- .../vendor/golang.org/x/net/ipv4/batch.go | 8 +- .../golang.org/x/net/ipv4/control_bsd.go | 5 +- .../golang.org/x/net/ipv4/control_stub.go | 4 +- .../golang.org/x/net/ipv4/control_unix.go | 2 +- .../golang.org/x/net/ipv4/control_windows.go | 8 +- .../vendor/golang.org/x/net/ipv4/dgramopt.go | 30 +-- .../vendor/golang.org/x/net/ipv4/doc.go | 4 +- .../vendor/golang.org/x/net/ipv4/endpoint.go | 2 +- .../golang.org/x/net/ipv4/genericopt.go | 8 +- .../vendor/golang.org/x/net/ipv4/header.go | 28 ++- .../vendor/golang.org/x/net/ipv4/helper.go | 35 +++- .../vendor/golang.org/x/net/ipv4/packet.go | 53 ++++- .../golang.org/x/net/ipv4/packet_go1_8.go | 56 ----- .../golang.org/x/net/ipv4/packet_go1_9.go | 67 ------ .../golang.org/x/net/ipv4/payload_cmsg.go | 59 +++++- .../x/net/ipv4/payload_cmsg_go1_8.go | 59 ------ .../x/net/ipv4/payload_cmsg_go1_9.go | 67 ------ .../golang.org/x/net/ipv4/payload_nocmsg.go | 2 +- .../golang.org/x/net/ipv4/sockopt_posix.go | 6 +- .../golang.org/x/net/ipv4/sockopt_stub.go | 16 +- .../vendor/golang.org/x/net/ipv4/sys_aix.go | 38 ++++ .../golang.org/x/net/ipv4/sys_asmreq.go | 5 +- .../golang.org/x/net/ipv4/sys_asmreq_stub.go | 8 +- .../golang.org/x/net/ipv4/sys_asmreqn_stub.go | 4 +- .../vendor/golang.org/x/net/ipv4/sys_bpf.go | 7 +- .../golang.org/x/net/ipv4/sys_bpf_stub.go | 2 +- .../golang.org/x/net/ipv4/sys_darwin.go | 52 ++--- .../golang.org/x/net/ipv4/sys_freebsd.go | 2 +- .../vendor/golang.org/x/net/ipv4/sys_linux.go | 3 +- .../golang.org/x/net/ipv4/sys_ssmreq.go | 6 +- .../golang.org/x/net/ipv4/sys_ssmreq_stub.go | 4 +- .../vendor/golang.org/x/net/ipv4/sys_stub.go | 2 +- .../golang.org/x/net/ipv4/zsys_aix_ppc64.go | 33 +++ .../golang.org/x/net/ipv4/zsys_darwin.go | 2 +- .../golang.org/x/net/ipv4/zsys_dragonfly.go | 2 +- .../golang.org/x/net/ipv4/zsys_freebsd_386.go | 2 +- .../x/net/ipv4/zsys_freebsd_amd64.go | 2 +- .../golang.org/x/net/ipv4/zsys_freebsd_arm.go | 2 +- .../x/net/ipv4/zsys_freebsd_arm64.go | 93 +++++++++ .../golang.org/x/net/ipv4/zsys_linux_386.go | 20 +- .../golang.org/x/net/ipv4/zsys_linux_amd64.go | 20 +- .../golang.org/x/net/ipv4/zsys_linux_arm.go | 20 +- .../golang.org/x/net/ipv4/zsys_linux_arm64.go | 20 +- .../golang.org/x/net/ipv4/zsys_linux_mips.go | 20 +- .../x/net/ipv4/zsys_linux_mips64.go | 20 +- .../x/net/ipv4/zsys_linux_mips64le.go | 20 +- .../x/net/ipv4/zsys_linux_mipsle.go | 20 +- .../golang.org/x/net/ipv4/zsys_linux_ppc.go | 20 +- .../golang.org/x/net/ipv4/zsys_linux_ppc64.go | 20 +- .../x/net/ipv4/zsys_linux_ppc64le.go | 20 +- .../x/net/ipv4/zsys_linux_riscv64.go | 134 ++++++++++++ .../golang.org/x/net/ipv4/zsys_linux_s390x.go | 20 +- .../golang.org/x/net/ipv4/zsys_netbsd.go | 2 +- .../golang.org/x/net/ipv4/zsys_openbsd.go | 2 +- .../golang.org/x/net/ipv4/zsys_solaris.go | 2 +- .../vendor/golang.org/x/net/ipv6/batch.go | 2 - .../x/net/ipv6/control_rfc3542_unix.go | 2 +- .../golang.org/x/net/ipv6/control_stub.go | 4 +- .../golang.org/x/net/ipv6/control_unix.go | 2 +- .../golang.org/x/net/ipv6/control_windows.go | 8 +- .../vendor/golang.org/x/net/ipv6/dgramopt.go | 34 +-- .../vendor/golang.org/x/net/ipv6/doc.go | 2 +- .../vendor/golang.org/x/net/ipv6/endpoint.go | 2 +- .../golang.org/x/net/ipv6/genericopt.go | 8 +- .../vendor/golang.org/x/net/ipv6/helper.go | 4 +- .../vendor/golang.org/x/net/ipv6/icmp_bsd.go | 2 +- .../vendor/golang.org/x/net/ipv6/icmp_stub.go | 2 +- .../golang.org/x/net/ipv6/payload_cmsg.go | 46 ++++- .../x/net/ipv6/payload_cmsg_go1_8.go | 55 ----- .../x/net/ipv6/payload_cmsg_go1_9.go | 57 ----- .../golang.org/x/net/ipv6/payload_nocmsg.go | 2 +- .../golang.org/x/net/ipv6/sockopt_posix.go | 12 +- .../golang.org/x/net/ipv6/sockopt_stub.go | 18 +- .../vendor/golang.org/x/net/ipv6/sys_aix.go | 77 +++++++ .../golang.org/x/net/ipv6/sys_asmreq.go | 2 +- .../golang.org/x/net/ipv6/sys_asmreq_stub.go | 4 +- .../vendor/golang.org/x/net/ipv6/sys_bpf.go | 7 +- .../golang.org/x/net/ipv6/sys_bpf_stub.go | 2 +- .../golang.org/x/net/ipv6/sys_darwin.go | 74 +++---- .../golang.org/x/net/ipv6/sys_freebsd.go | 2 +- .../vendor/golang.org/x/net/ipv6/sys_linux.go | 3 +- .../golang.org/x/net/ipv6/sys_ssmreq.go | 8 +- .../golang.org/x/net/ipv6/sys_ssmreq_stub.go | 6 +- .../vendor/golang.org/x/net/ipv6/sys_stub.go | 2 +- .../golang.org/x/net/ipv6/zsys_aix_ppc64.go | 103 ++++++++++ .../golang.org/x/net/ipv6/zsys_darwin.go | 2 +- .../golang.org/x/net/ipv6/zsys_dragonfly.go | 2 +- .../golang.org/x/net/ipv6/zsys_freebsd_386.go | 2 +- .../x/net/ipv6/zsys_freebsd_amd64.go | 2 +- .../golang.org/x/net/ipv6/zsys_freebsd_arm.go | 2 +- .../x/net/ipv6/zsys_freebsd_arm64.go | 122 +++++++++++ .../golang.org/x/net/ipv6/zsys_linux_386.go | 20 +- .../golang.org/x/net/ipv6/zsys_linux_amd64.go | 20 +- .../golang.org/x/net/ipv6/zsys_linux_arm.go | 20 +- .../golang.org/x/net/ipv6/zsys_linux_arm64.go | 20 +- .../golang.org/x/net/ipv6/zsys_linux_mips.go | 20 +- .../x/net/ipv6/zsys_linux_mips64.go | 20 +- .../x/net/ipv6/zsys_linux_mips64le.go | 20 +- .../x/net/ipv6/zsys_linux_mipsle.go | 20 +- .../golang.org/x/net/ipv6/zsys_linux_ppc.go | 20 +- .../golang.org/x/net/ipv6/zsys_linux_ppc64.go | 20 +- .../x/net/ipv6/zsys_linux_ppc64le.go | 20 +- .../x/net/ipv6/zsys_linux_riscv64.go | 156 ++++++++++++++ .../golang.org/x/net/ipv6/zsys_linux_s390x.go | 20 +- .../golang.org/x/net/ipv6/zsys_netbsd.go | 2 +- .../golang.org/x/net/ipv6/zsys_openbsd.go | 2 +- .../golang.org/x/net/ipv6/zsys_solaris.go | 2 +- .../vendor/golang.org/x/net/proxy/dial.go | 54 +++++ .../vendor/golang.org/x/net/proxy/direct.go | 15 +- .../vendor/golang.org/x/net/proxy/per_host.go | 15 ++ .../vendor/golang.org/x/net/proxy/proxy.go | 33 ++- .../vendor/golang.org/x/net/proxy/socks5.go | 10 +- 187 files changed, 2075 insertions(+), 1650 deletions(-) create mode 100644 libnetwork/vendor/golang.org/x/net/go.mod create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/empty.s create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/norace.go create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/race.go delete mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_stub.go delete mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/reflect.go create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/sys_const_unix.go create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/sys_go1_11_darwin.go create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/sys_linkname.go create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go create mode 100644 libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go delete mode 100644 libnetwork/vendor/golang.org/x/net/ipv4/packet_go1_8.go delete mode 100644 libnetwork/vendor/golang.org/x/net/ipv4/packet_go1_9.go delete mode 100644 libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_8.go delete mode 100644 libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_9.go create mode 100644 libnetwork/vendor/golang.org/x/net/ipv4/sys_aix.go create mode 100644 libnetwork/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go create mode 100644 libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm64.go create mode 100644 libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go delete mode 100644 libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_8.go delete mode 100644 libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_9.go create mode 100644 libnetwork/vendor/golang.org/x/net/ipv6/sys_aix.go create mode 100644 libnetwork/vendor/golang.org/x/net/ipv6/zsys_aix_ppc64.go create mode 100644 libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm64.go create mode 100644 libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_riscv64.go create mode 100644 libnetwork/vendor/golang.org/x/net/proxy/dial.go diff --git a/libnetwork/vendor.conf b/libnetwork/vendor.conf index b2fa622f59..5663306e7d 100644 --- a/libnetwork/vendor.conf +++ b/libnetwork/vendor.conf @@ -43,7 +43,7 @@ github.com/urfave/cli a65b733b303f0055f8d324d805f3 github.com/vishvananda/netlink f049be6f391489d3f374498fe0c8df8449258372 # v1.1.0 github.com/vishvananda/netns db3c7e526aae966c4ccfa6c8189b693d6ac5d202 golang.org/x/crypto b7391e95e576cacdcdd422573063bc057239113d -golang.org/x/net a680a1efc54dd51c040b3b5ce4939ea3cf2ea0d1 +golang.org/x/net ab34263943818b32f575efc978a3d24e80b04bd7 golang.org/x/sys d455e41777fca6e8a5a79e34a14b8368bc11d9ba golang.org/x/sync 1d60e4601c6fd243af51cc01ddf169918a5407ca github.com/pkg/errors 614d223910a179a466c1767a985424175c39b465 # v0.9.1 diff --git a/libnetwork/vendor/golang.org/x/net/bpf/constants.go b/libnetwork/vendor/golang.org/x/net/bpf/constants.go index b89ca35239..12f3ee835a 100644 --- a/libnetwork/vendor/golang.org/x/net/bpf/constants.go +++ b/libnetwork/vendor/golang.org/x/net/bpf/constants.go @@ -38,6 +38,7 @@ const ( type JumpTest uint16 // Supported operators for conditional jumps. +// K can be RegX for JumpIfX const ( // K == A JumpEqual JumpTest = iota @@ -134,12 +135,9 @@ const ( opMaskLoadDest = 0x01 opMaskLoadWidth = 0x18 opMaskLoadMode = 0xe0 - // opClsALU - opMaskOperandSrc = 0x08 - opMaskOperator = 0xf0 - // opClsJump - opMaskJumpConst = 0x0f - opMaskJumpCond = 0xf0 + // opClsALU & opClsJump + opMaskOperand = 0x08 + opMaskOperator = 0xf0 ) const ( @@ -192,15 +190,21 @@ const ( opLoadWidth1 ) -// Operator defined by ALUOp* +// Operand for ALU and Jump instructions +type opOperand uint16 +// Supported operand sources. const ( - opALUSrcConstant uint16 = iota << 3 - opALUSrcX + opOperandConstant opOperand = iota << 3 + opOperandX ) +// An jumpOp is a conditional jump condition. +type jumpOp uint16 + +// Supported jump conditions. const ( - opJumpAlways = iota << 4 + opJumpAlways jumpOp = iota << 4 opJumpEqual opJumpGT opJumpGE diff --git a/libnetwork/vendor/golang.org/x/net/bpf/instructions.go b/libnetwork/vendor/golang.org/x/net/bpf/instructions.go index f9dc0e8ee7..3cffcaa014 100644 --- a/libnetwork/vendor/golang.org/x/net/bpf/instructions.go +++ b/libnetwork/vendor/golang.org/x/net/bpf/instructions.go @@ -89,10 +89,14 @@ func (ri RawInstruction) Disassemble() Instruction { case opClsALU: switch op := ALUOp(ri.Op & opMaskOperator); op { case ALUOpAdd, ALUOpSub, ALUOpMul, ALUOpDiv, ALUOpOr, ALUOpAnd, ALUOpShiftLeft, ALUOpShiftRight, ALUOpMod, ALUOpXor: - if ri.Op&opMaskOperandSrc != 0 { + switch operand := opOperand(ri.Op & opMaskOperand); operand { + case opOperandX: return ALUOpX{Op: op} + case opOperandConstant: + return ALUOpConstant{Op: op, Val: ri.K} + default: + return ri } - return ALUOpConstant{Op: op, Val: ri.K} case aluOpNeg: return NegateA{} default: @@ -100,63 +104,18 @@ func (ri RawInstruction) Disassemble() Instruction { } case opClsJump: - if ri.Op&opMaskJumpConst != opClsJump { - return ri - } - switch ri.Op & opMaskJumpCond { + switch op := jumpOp(ri.Op & opMaskOperator); op { case opJumpAlways: return Jump{Skip: ri.K} - case opJumpEqual: - if ri.Jt == 0 { - return JumpIf{ - Cond: JumpNotEqual, - Val: ri.K, - SkipTrue: ri.Jf, - SkipFalse: 0, - } - } - return JumpIf{ - Cond: JumpEqual, - Val: ri.K, - SkipTrue: ri.Jt, - SkipFalse: ri.Jf, - } - case opJumpGT: - if ri.Jt == 0 { - return JumpIf{ - Cond: JumpLessOrEqual, - Val: ri.K, - SkipTrue: ri.Jf, - SkipFalse: 0, - } - } - return JumpIf{ - Cond: JumpGreaterThan, - Val: ri.K, - SkipTrue: ri.Jt, - SkipFalse: ri.Jf, - } - case opJumpGE: - if ri.Jt == 0 { - return JumpIf{ - Cond: JumpLessThan, - Val: ri.K, - SkipTrue: ri.Jf, - SkipFalse: 0, - } - } - return JumpIf{ - Cond: JumpGreaterOrEqual, - Val: ri.K, - SkipTrue: ri.Jt, - SkipFalse: ri.Jf, - } - case opJumpSet: - return JumpIf{ - Cond: JumpBitsSet, - Val: ri.K, - SkipTrue: ri.Jt, - SkipFalse: ri.Jf, + case opJumpEqual, opJumpGT, opJumpGE, opJumpSet: + cond, skipTrue, skipFalse := jumpOpToTest(op, ri.Jt, ri.Jf) + switch operand := opOperand(ri.Op & opMaskOperand); operand { + case opOperandX: + return JumpIfX{Cond: cond, SkipTrue: skipTrue, SkipFalse: skipFalse} + case opOperandConstant: + return JumpIf{Cond: cond, Val: ri.K, SkipTrue: skipTrue, SkipFalse: skipFalse} + default: + return ri } default: return ri @@ -187,6 +146,41 @@ func (ri RawInstruction) Disassemble() Instruction { } } +func jumpOpToTest(op jumpOp, skipTrue uint8, skipFalse uint8) (JumpTest, uint8, uint8) { + var test JumpTest + + // Decode "fake" jump conditions that don't appear in machine code + // Ensures the Assemble -> Disassemble stage recreates the same instructions + // See https://github.com/golang/go/issues/18470 + if skipTrue == 0 { + switch op { + case opJumpEqual: + test = JumpNotEqual + case opJumpGT: + test = JumpLessOrEqual + case opJumpGE: + test = JumpLessThan + case opJumpSet: + test = JumpBitsNotSet + } + + return test, skipFalse, 0 + } + + switch op { + case opJumpEqual: + test = JumpEqual + case opJumpGT: + test = JumpGreaterThan + case opJumpGE: + test = JumpGreaterOrEqual + case opJumpSet: + test = JumpBitsSet + } + + return test, skipTrue, skipFalse +} + // LoadConstant loads Val into register Dst. type LoadConstant struct { Dst Register @@ -413,7 +407,7 @@ type ALUOpConstant struct { // Assemble implements the Instruction Assemble method. func (a ALUOpConstant) Assemble() (RawInstruction, error) { return RawInstruction{ - Op: opClsALU | opALUSrcConstant | uint16(a.Op), + Op: opClsALU | uint16(opOperandConstant) | uint16(a.Op), K: a.Val, }, nil } @@ -454,7 +448,7 @@ type ALUOpX struct { // Assemble implements the Instruction Assemble method. func (a ALUOpX) Assemble() (RawInstruction, error) { return RawInstruction{ - Op: opClsALU | opALUSrcX | uint16(a.Op), + Op: opClsALU | uint16(opOperandX) | uint16(a.Op), }, nil } @@ -509,7 +503,7 @@ type Jump struct { // Assemble implements the Instruction Assemble method. func (a Jump) Assemble() (RawInstruction, error) { return RawInstruction{ - Op: opClsJump | opJumpAlways, + Op: opClsJump | uint16(opJumpAlways), K: a.Skip, }, nil } @@ -530,11 +524,39 @@ type JumpIf struct { // Assemble implements the Instruction Assemble method. func (a JumpIf) Assemble() (RawInstruction, error) { + return jumpToRaw(a.Cond, opOperandConstant, a.Val, a.SkipTrue, a.SkipFalse) +} + +// String returns the instruction in assembler notation. +func (a JumpIf) String() string { + return jumpToString(a.Cond, fmt.Sprintf("#%d", a.Val), a.SkipTrue, a.SkipFalse) +} + +// JumpIfX skips the following Skip instructions in the program if A +// X is true. +type JumpIfX struct { + Cond JumpTest + SkipTrue uint8 + SkipFalse uint8 +} + +// Assemble implements the Instruction Assemble method. +func (a JumpIfX) Assemble() (RawInstruction, error) { + return jumpToRaw(a.Cond, opOperandX, 0, a.SkipTrue, a.SkipFalse) +} + +// String returns the instruction in assembler notation. +func (a JumpIfX) String() string { + return jumpToString(a.Cond, "x", a.SkipTrue, a.SkipFalse) +} + +// jumpToRaw assembles a jump instruction into a RawInstruction +func jumpToRaw(test JumpTest, operand opOperand, k uint32, skipTrue, skipFalse uint8) (RawInstruction, error) { var ( - cond uint16 + cond jumpOp flip bool ) - switch a.Cond { + switch test { case JumpEqual: cond = opJumpEqual case JumpNotEqual: @@ -552,63 +574,63 @@ func (a JumpIf) Assemble() (RawInstruction, error) { case JumpBitsNotSet: cond, flip = opJumpSet, true default: - return RawInstruction{}, fmt.Errorf("unknown JumpTest %v", a.Cond) + return RawInstruction{}, fmt.Errorf("unknown JumpTest %v", test) } - jt, jf := a.SkipTrue, a.SkipFalse + jt, jf := skipTrue, skipFalse if flip { jt, jf = jf, jt } return RawInstruction{ - Op: opClsJump | cond, + Op: opClsJump | uint16(cond) | uint16(operand), Jt: jt, Jf: jf, - K: a.Val, + K: k, }, nil } -// String returns the instruction in assembler notation. -func (a JumpIf) String() string { - switch a.Cond { +// jumpToString converts a jump instruction to assembler notation +func jumpToString(cond JumpTest, operand string, skipTrue, skipFalse uint8) string { + switch cond { // K == A case JumpEqual: - return conditionalJump(a, "jeq", "jneq") + return conditionalJump(operand, skipTrue, skipFalse, "jeq", "jneq") // K != A case JumpNotEqual: - return fmt.Sprintf("jneq #%d,%d", a.Val, a.SkipTrue) + return fmt.Sprintf("jneq %s,%d", operand, skipTrue) // K > A case JumpGreaterThan: - return conditionalJump(a, "jgt", "jle") + return conditionalJump(operand, skipTrue, skipFalse, "jgt", "jle") // K < A case JumpLessThan: - return fmt.Sprintf("jlt #%d,%d", a.Val, a.SkipTrue) + return fmt.Sprintf("jlt %s,%d", operand, skipTrue) // K >= A case JumpGreaterOrEqual: - return conditionalJump(a, "jge", "jlt") + return conditionalJump(operand, skipTrue, skipFalse, "jge", "jlt") // K <= A case JumpLessOrEqual: - return fmt.Sprintf("jle #%d,%d", a.Val, a.SkipTrue) + return fmt.Sprintf("jle %s,%d", operand, skipTrue) // K & A != 0 case JumpBitsSet: - if a.SkipFalse > 0 { - return fmt.Sprintf("jset #%d,%d,%d", a.Val, a.SkipTrue, a.SkipFalse) + if skipFalse > 0 { + return fmt.Sprintf("jset %s,%d,%d", operand, skipTrue, skipFalse) } - return fmt.Sprintf("jset #%d,%d", a.Val, a.SkipTrue) + return fmt.Sprintf("jset %s,%d", operand, skipTrue) // K & A == 0, there is no assembler instruction for JumpBitNotSet, use JumpBitSet and invert skips case JumpBitsNotSet: - return JumpIf{Cond: JumpBitsSet, SkipTrue: a.SkipFalse, SkipFalse: a.SkipTrue, Val: a.Val}.String() + return jumpToString(JumpBitsSet, operand, skipFalse, skipTrue) default: - return fmt.Sprintf("unknown instruction: %#v", a) + return fmt.Sprintf("unknown JumpTest %#v", cond) } } -func conditionalJump(inst JumpIf, positiveJump, negativeJump string) string { - if inst.SkipTrue > 0 { - if inst.SkipFalse > 0 { - return fmt.Sprintf("%s #%d,%d,%d", positiveJump, inst.Val, inst.SkipTrue, inst.SkipFalse) +func conditionalJump(operand string, skipTrue, skipFalse uint8, positiveJump, negativeJump string) string { + if skipTrue > 0 { + if skipFalse > 0 { + return fmt.Sprintf("%s %s,%d,%d", positiveJump, operand, skipTrue, skipFalse) } - return fmt.Sprintf("%s #%d,%d", positiveJump, inst.Val, inst.SkipTrue) + return fmt.Sprintf("%s %s,%d", positiveJump, operand, skipTrue) } - return fmt.Sprintf("%s #%d,%d", negativeJump, inst.Val, inst.SkipFalse) + return fmt.Sprintf("%s %s,%d", negativeJump, operand, skipFalse) } // RetA exits the BPF program, returning the value of register A. diff --git a/libnetwork/vendor/golang.org/x/net/bpf/vm.go b/libnetwork/vendor/golang.org/x/net/bpf/vm.go index 4c656f1e12..73f57f1f72 100644 --- a/libnetwork/vendor/golang.org/x/net/bpf/vm.go +++ b/libnetwork/vendor/golang.org/x/net/bpf/vm.go @@ -35,6 +35,13 @@ func NewVM(filter []Instruction) (*VM, error) { if check <= int(ins.SkipFalse) { return nil, fmt.Errorf("cannot jump %d instructions in false case; jumping past program bounds", ins.SkipFalse) } + case JumpIfX: + if check <= int(ins.SkipTrue) { + return nil, fmt.Errorf("cannot jump %d instructions in true case; jumping past program bounds", ins.SkipTrue) + } + if check <= int(ins.SkipFalse) { + return nil, fmt.Errorf("cannot jump %d instructions in false case; jumping past program bounds", ins.SkipFalse) + } // Check for division or modulus by zero case ALUOpConstant: if ins.Val != 0 { @@ -109,6 +116,9 @@ func (v *VM) Run(in []byte) (int, error) { case JumpIf: jump := jumpIf(ins, regA) i += jump + case JumpIfX: + jump := jumpIfX(ins, regA, regX) + i += jump case LoadAbsolute: regA, ok = loadAbsolute(ins, in) case LoadConstant: diff --git a/libnetwork/vendor/golang.org/x/net/bpf/vm_instructions.go b/libnetwork/vendor/golang.org/x/net/bpf/vm_instructions.go index 516f9462b9..cf8947c332 100644 --- a/libnetwork/vendor/golang.org/x/net/bpf/vm_instructions.go +++ b/libnetwork/vendor/golang.org/x/net/bpf/vm_instructions.go @@ -55,34 +55,41 @@ func aluOpCommon(op ALUOp, regA uint32, value uint32) uint32 { } } -func jumpIf(ins JumpIf, value uint32) int { - var ok bool - inV := uint32(ins.Val) +func jumpIf(ins JumpIf, regA uint32) int { + return jumpIfCommon(ins.Cond, ins.SkipTrue, ins.SkipFalse, regA, ins.Val) +} - switch ins.Cond { +func jumpIfX(ins JumpIfX, regA uint32, regX uint32) int { + return jumpIfCommon(ins.Cond, ins.SkipTrue, ins.SkipFalse, regA, regX) +} + +func jumpIfCommon(cond JumpTest, skipTrue, skipFalse uint8, regA uint32, value uint32) int { + var ok bool + + switch cond { case JumpEqual: - ok = value == inV + ok = regA == value case JumpNotEqual: - ok = value != inV + ok = regA != value case JumpGreaterThan: - ok = value > inV + ok = regA > value case JumpLessThan: - ok = value < inV + ok = regA < value case JumpGreaterOrEqual: - ok = value >= inV + ok = regA >= value case JumpLessOrEqual: - ok = value <= inV + ok = regA <= value case JumpBitsSet: - ok = (value & inV) != 0 + ok = (regA & value) != 0 case JumpBitsNotSet: - ok = (value & inV) == 0 + ok = (regA & value) == 0 } if ok { - return int(ins.SkipTrue) + return int(skipTrue) } - return int(ins.SkipFalse) + return int(skipFalse) } func loadAbsolute(ins LoadAbsolute, in []byte) (uint32, bool) { @@ -122,7 +129,8 @@ func loadIndirect(ins LoadIndirect, in []byte, regX uint32) (uint32, bool) { func loadMemShift(ins LoadMemShift, in []byte) (uint32, bool) { offset := int(ins.Off) - if !inBounds(len(in), offset, 0) { + // Size of LoadMemShift is always 1 byte + if !inBounds(len(in), offset, 1) { return 0, false } diff --git a/libnetwork/vendor/golang.org/x/net/go.mod b/libnetwork/vendor/golang.org/x/net/go.mod new file mode 100644 index 0000000000..9d4b5ce9bc --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/go.mod @@ -0,0 +1,9 @@ +module golang.org/x/net + +go 1.11 + +require ( + golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 + golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd + golang.org/x/text v0.3.0 +) diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr.go b/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr.go index 1eb07d26de..0a73e277e0 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux netbsd openbsd solaris +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go b/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go index d1d0c2de54..14dbb3ad42 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd netbsd openbsd +// +build aix darwin dragonfly freebsd netbsd openbsd package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go b/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go index 63f0534fa7..27be0efaca 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build arm64 amd64 ppc64 ppc64le mips64 mips64le s390x +// +build arm64 amd64 ppc64 ppc64le mips64 mips64le riscv64 s390x // +build linux package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go b/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go index a4e71226f8..e581011b05 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/empty.s b/libnetwork/vendor/golang.org/x/net/internal/socket/empty.s new file mode 100644 index 0000000000..bff0231c7d --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/empty.s @@ -0,0 +1,7 @@ +// Copyright 2018 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. + +// +build darwin,go1.12 + +// This exists solely so we can linkname in symbols from syscall. diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/error_unix.go b/libnetwork/vendor/golang.org/x/net/internal/socket/error_unix.go index 93dff91802..f14872d3d3 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/error_unix.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/error_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux netbsd openbsd solaris +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/iovec_64bit.go b/libnetwork/vendor/golang.org/x/net/internal/socket/iovec_64bit.go index afb34ad58e..dfeda752be 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/iovec_64bit.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/iovec_64bit.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build arm64 amd64 ppc64 ppc64le mips64 mips64le s390x -// +build darwin dragonfly freebsd linux netbsd openbsd +// +build arm64 amd64 ppc64 ppc64le mips64 mips64le riscv64 s390x +// +build aix darwin dragonfly freebsd linux netbsd openbsd package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/iovec_stub.go b/libnetwork/vendor/golang.org/x/net/internal/socket/iovec_stub.go index c87d2a9339..a746e90e30 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/iovec_stub.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/iovec_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go b/libnetwork/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go index 2e80a9cb74..1a7f2792f2 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !linux,!netbsd +// +build !aix,!linux,!netbsd package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go b/libnetwork/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go index 3c42ea7ad8..f1100683a5 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build linux netbsd +// +build aix linux netbsd package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go b/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go index 5567afc88d..77f44c1f12 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd netbsd openbsd +// +build aix darwin dragonfly freebsd netbsd openbsd package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go b/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go index b8c87b72b9..c5562dd66a 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd netbsd +// +build aix darwin dragonfly freebsd netbsd package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go b/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go index 610fc4f3bb..e731833a26 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build arm64 amd64 ppc64 ppc64le mips64 mips64le s390x +// +build arm64 amd64 ppc64 ppc64le mips64 mips64le riscv64 s390x // +build linux package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_stub.go b/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_stub.go index 64e8173352..873490a7ae 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_stub.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/msghdr_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/norace.go b/libnetwork/vendor/golang.org/x/net/internal/socket/norace.go new file mode 100644 index 0000000000..9519ffbba4 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/norace.go @@ -0,0 +1,12 @@ +// Copyright 2019 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. + +// +build !race + +package socket + +func (m *Message) raceRead() { +} +func (m *Message) raceWrite() { +} diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/race.go b/libnetwork/vendor/golang.org/x/net/internal/socket/race.go new file mode 100644 index 0000000000..df60c62fff --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/race.go @@ -0,0 +1,37 @@ +// Copyright 2019 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. + +// +build race + +package socket + +import ( + "runtime" + "unsafe" +) + +// This package reads and writes the Message buffers using a +// direct system call, which the race detector can't see. +// These functions tell the race detector what is going on during the syscall. + +func (m *Message) raceRead() { + for _, b := range m.Buffers { + if len(b) > 0 { + runtime.RaceReadRange(unsafe.Pointer(&b[0]), len(b)) + } + } + if b := m.OOB; len(b) > 0 { + runtime.RaceReadRange(unsafe.Pointer(&b[0]), len(b)) + } +} +func (m *Message) raceWrite() { + for _, b := range m.Buffers { + if len(b) > 0 { + runtime.RaceWriteRange(unsafe.Pointer(&b[0]), len(b)) + } + } + if b := m.OOB; len(b) > 0 { + runtime.RaceWriteRange(unsafe.Pointer(&b[0]), len(b)) + } +} diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn.go b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn.go index d6871d55f7..b07b890050 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn.go @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build go1.9 - package socket import ( diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go index 499164a3fb..d01fc4c7da 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build go1.9 // +build linux package socket @@ -14,6 +13,9 @@ import ( ) func (c *Conn) recvMsgs(ms []Message, flags int) (int, error) { + for i := range ms { + ms[i].raceWrite() + } hs := make(mmsghdrs, len(ms)) var parseFn func([]byte, string) (net.Addr, error) if c.network != "tcp" { @@ -44,6 +46,9 @@ func (c *Conn) recvMsgs(ms []Message, flags int) (int, error) { } func (c *Conn) sendMsgs(ms []Message, flags int) (int, error) { + for i := range ms { + ms[i].raceRead() + } hs := make(mmsghdrs, len(ms)) var marshalFn func(net.Addr) []byte if c.network != "tcp" { diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_msg.go b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_msg.go index b21d2e6418..d5ae3f8e14 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_msg.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_msg.go @@ -2,8 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build go1.9 -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows package socket @@ -13,6 +12,7 @@ import ( ) func (c *Conn) recvMsg(m *Message, flags int) error { + m.raceWrite() var h msghdr vs := make([]iovec, len(m.Buffers)) var sa []byte @@ -49,6 +49,7 @@ func (c *Conn) recvMsg(m *Message, flags int) error { } func (c *Conn) sendMsg(m *Message, flags int) error { + m.raceRead() var h msghdr vs := make([]iovec, len(m.Buffers)) var sa []byte diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go index f78832aa4a..fe5bb942ba 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go @@ -2,17 +2,14 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build go1.9 // +build !linux package socket -import "errors" - func (c *Conn) recvMsgs(ms []Message, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } func (c *Conn) sendMsgs(ms []Message, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go index 96733cbe1b..b8cea6fe53 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go @@ -2,17 +2,14 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build go1.9 -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows package socket -import "errors" - func (c *Conn) recvMsg(m *Message, flags int) error { - return errors.New("not implemented") + return errNotImplemented } func (c *Conn) sendMsg(m *Message, flags int) error { - return errors.New("not implemented") + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_stub.go b/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_stub.go deleted file mode 100644 index d2add1a0aa..0000000000 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/rawconn_stub.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2017 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. - -// +build !go1.9 - -package socket - -import "errors" - -func (c *Conn) recvMsg(m *Message, flags int) error { - return errors.New("not implemented") -} - -func (c *Conn) sendMsg(m *Message, flags int) error { - return errors.New("not implemented") -} - -func (c *Conn) recvMsgs(ms []Message, flags int) (int, error) { - return 0, errors.New("not implemented") -} - -func (c *Conn) sendMsgs(ms []Message, flags int) (int, error) { - return 0, errors.New("not implemented") -} diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/reflect.go b/libnetwork/vendor/golang.org/x/net/internal/socket/reflect.go deleted file mode 100644 index bb179f11d8..0000000000 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/reflect.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2017 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. - -// +build !go1.9 - -package socket - -import ( - "errors" - "net" - "os" - "reflect" - "runtime" -) - -// A Conn represents a raw connection. -type Conn struct { - c net.Conn -} - -// NewConn returns a new raw connection. -func NewConn(c net.Conn) (*Conn, error) { - return &Conn{c: c}, nil -} - -func (o *Option) get(c *Conn, b []byte) (int, error) { - s, err := socketOf(c.c) - if err != nil { - return 0, err - } - n, err := getsockopt(s, o.Level, o.Name, b) - return n, os.NewSyscallError("getsockopt", err) -} - -func (o *Option) set(c *Conn, b []byte) error { - s, err := socketOf(c.c) - if err != nil { - return err - } - return os.NewSyscallError("setsockopt", setsockopt(s, o.Level, o.Name, b)) -} - -func socketOf(c net.Conn) (uintptr, error) { - switch c.(type) { - case *net.TCPConn, *net.UDPConn, *net.IPConn: - v := reflect.ValueOf(c) - switch e := v.Elem(); e.Kind() { - case reflect.Struct: - fd := e.FieldByName("conn").FieldByName("fd") - switch e := fd.Elem(); e.Kind() { - case reflect.Struct: - sysfd := e.FieldByName("sysfd") - if runtime.GOOS == "windows" { - return uintptr(sysfd.Uint()), nil - } - return uintptr(sysfd.Int()), nil - } - } - } - return 0, errors.New("invalid type") -} diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/socket.go b/libnetwork/vendor/golang.org/x/net/internal/socket/socket.go index 5f9730e6d9..23571b8d4d 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/socket.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/socket.go @@ -9,9 +9,12 @@ package socket // import "golang.org/x/net/internal/socket" import ( "errors" "net" + "runtime" "unsafe" ) +var errNotImplemented = errors.New("not implemented on " + runtime.GOOS + "/" + runtime.GOARCH) + // An Option represents a sticky socket option. type Option struct { Level int // level diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys.go index 4f0eead138..ee492ba86b 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/sys.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys.go @@ -29,5 +29,5 @@ func init() { } func roundup(l int) int { - return (l + kernelAlign - 1) & ^(kernelAlign - 1) + return (l + kernelAlign - 1) &^ (kernelAlign - 1) } diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_bsd.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_bsd.go index f13e14ff36..d432835b41 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_bsd.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_bsd.go @@ -2,16 +2,14 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd openbsd +// +build aix darwin dragonfly freebsd openbsd package socket -import "errors" - func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go index f723fa36af..b4f41b5522 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go @@ -2,13 +2,22 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build freebsd netbsd openbsd +// +build aix freebsd netbsd openbsd package socket -import "unsafe" +import ( + "runtime" + "unsafe" +) func probeProtocolStack() int { + if (runtime.GOOS == "netbsd" || runtime.GOOS == "openbsd") && runtime.GOARCH == "arm" { + return 8 + } + if runtime.GOOS == "aix" { + return 1 + } var p uintptr return int(unsafe.Sizeof(p)) } diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_const_unix.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_const_unix.go new file mode 100644 index 0000000000..43797d6e53 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_const_unix.go @@ -0,0 +1,17 @@ +// Copyright 2019 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package socket + +import "golang.org/x/sys/unix" + +const ( + sysAF_UNSPEC = unix.AF_UNSPEC + sysAF_INET = unix.AF_INET + sysAF_INET6 = unix.AF_INET6 + + sysSOCK_RAW = unix.SOCK_RAW +) diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go index b17d223bff..ed0448fe98 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go @@ -4,4 +4,29 @@ package socket -func probeProtocolStack() int { return 4 } +import ( + "sync" + "syscall" + "unsafe" +) + +// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h +var ( + osreldateOnce sync.Once + osreldate uint32 +) + +// First __DragonFly_version after September 2019 ABI changes +// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html +const _dragonflyABIChangeVersion = 500705 + +func probeProtocolStack() int { + osreldateOnce.Do(func() { osreldate, _ = syscall.SysctlUint32("kern.osreldate") }) + var p uintptr + if int(unsafe.Sizeof(p)) == 8 && osreldate >= _dragonflyABIChangeVersion { + return int(unsafe.Sizeof(p)) + } + // 64-bit Dragonfly before the September 2019 ABI changes still requires + // 32-bit aligned access to network subsystem. + return 4 +} diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_go1_11_darwin.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_go1_11_darwin.go new file mode 100644 index 0000000000..02d2b3cc83 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_go1_11_darwin.go @@ -0,0 +1,33 @@ +// Copyright 2018 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. + +// +build !go1.12 + +package socket + +import ( + "syscall" + "unsafe" +) + +func getsockopt(s uintptr, level, name int, b []byte) (int, error) { + l := uint32(len(b)) + _, _, errno := syscall.Syscall6(syscall.SYS_GETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(unsafe.Pointer(&l)), 0) + return int(l), errnoErr(errno) +} + +func setsockopt(s uintptr, level, name int, b []byte) error { + _, _, errno := syscall.Syscall6(syscall.SYS_SETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)), 0) + return errnoErr(errno) +} + +func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { + n, _, errno := syscall.Syscall(syscall.SYS_RECVMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags)) + return int(n), errnoErr(errno) +} + +func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { + n, _, errno := syscall.Syscall(syscall.SYS_SENDMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags)) + return int(n), errnoErr(errno) +} diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_linkname.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_linkname.go new file mode 100644 index 0000000000..61c3f38a51 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_linkname.go @@ -0,0 +1,42 @@ +// Copyright 2018 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. + +// +build aix go1.12,darwin + +package socket + +import ( + "syscall" + "unsafe" +) + +//go:linkname syscall_getsockopt syscall.getsockopt +func syscall_getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *uint32) error + +func getsockopt(s uintptr, level, name int, b []byte) (int, error) { + l := uint32(len(b)) + err := syscall_getsockopt(int(s), level, name, unsafe.Pointer(&b[0]), &l) + return int(l), err +} + +//go:linkname syscall_setsockopt syscall.setsockopt +func syscall_setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error + +func setsockopt(s uintptr, level, name int, b []byte) error { + return syscall_setsockopt(int(s), level, name, unsafe.Pointer(&b[0]), uintptr(len(b))) +} + +//go:linkname syscall_recvmsg syscall.recvmsg +func syscall_recvmsg(s int, msg *syscall.Msghdr, flags int) (n int, err error) + +func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { + return syscall_recvmsg(int(s), (*syscall.Msghdr)(unsafe.Pointer(h)), flags) +} + +//go:linkname syscall_sendmsg syscall.sendmsg +func syscall_sendmsg(s int, msg *syscall.Msghdr, flags int) (n int, err error) + +func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { + return syscall_sendmsg(int(s), (*syscall.Msghdr)(unsafe.Pointer(h)), flags) +} diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go new file mode 100644 index 0000000000..64f69f1dc5 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go @@ -0,0 +1,12 @@ +// Copyright 2019 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. + +// +build riscv64 + +package socket + +const ( + sysRECVMMSG = 0xf3 + sysSENDMMSG = 0x10d +) diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_posix.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_posix.go index dc130c27eb..22eae809c9 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_posix.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_posix.go @@ -2,8 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build go1.9 -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows package socket @@ -34,7 +33,7 @@ func marshalSockaddr(ip net.IP, port int, zone string) []byte { if ip4 := ip.To4(); ip4 != nil { b := make([]byte, sizeofSockaddrInet) switch runtime.GOOS { - case "android", "linux", "solaris", "windows": + case "android", "illumos", "linux", "solaris", "windows": NativeEndian.PutUint16(b[:2], uint16(sysAF_INET)) default: b[0] = sizeofSockaddrInet @@ -47,7 +46,7 @@ func marshalSockaddr(ip net.IP, port int, zone string) []byte { if ip6 := ip.To16(); ip6 != nil && ip.To4() == nil { b := make([]byte, sizeofSockaddrInet6) switch runtime.GOOS { - case "android", "linux", "solaris", "windows": + case "android", "illumos", "linux", "solaris", "windows": NativeEndian.PutUint16(b[:2], uint16(sysAF_INET6)) default: b[0] = sizeofSockaddrInet6 @@ -69,7 +68,7 @@ func parseInetAddr(b []byte, network string) (net.Addr, error) { } var af int switch runtime.GOOS { - case "android", "linux", "solaris", "windows": + case "android", "illumos", "linux", "solaris", "windows": af = int(NativeEndian.Uint16(b[:2])) default: af = int(b[1]) @@ -121,18 +120,21 @@ var zoneCache = ipv6ZoneCache{ toName: make(map[int]string), } -func (zc *ipv6ZoneCache) update(ift []net.Interface) { +// update refreshes the network interface information if the cache was last +// updated more than 1 minute ago, or if force is set. It returns whether the +// cache was updated. +func (zc *ipv6ZoneCache) update(ift []net.Interface, force bool) (updated bool) { zc.Lock() defer zc.Unlock() now := time.Now() - if zc.lastFetched.After(now.Add(-60 * time.Second)) { - return + if !force && zc.lastFetched.After(now.Add(-60*time.Second)) { + return false } zc.lastFetched = now if len(ift) == 0 { var err error if ift, err = net.Interfaces(); err != nil { - return + return false } } zc.toIndex = make(map[string]int, len(ift)) @@ -143,25 +145,38 @@ func (zc *ipv6ZoneCache) update(ift []net.Interface) { zc.toName[ifi.Index] = ifi.Name } } + return true } func (zc *ipv6ZoneCache) name(zone int) string { - zoneCache.update(nil) + updated := zoneCache.update(nil, false) zoneCache.RLock() - defer zoneCache.RUnlock() name, ok := zoneCache.toName[zone] - if !ok { + zoneCache.RUnlock() + if !ok && !updated { + zoneCache.update(nil, true) + zoneCache.RLock() + name, ok = zoneCache.toName[zone] + zoneCache.RUnlock() + } + if !ok { // last resort name = strconv.Itoa(zone) } return name } func (zc *ipv6ZoneCache) index(zone string) int { - zoneCache.update(nil) + updated := zoneCache.update(nil, false) zoneCache.RLock() - defer zoneCache.RUnlock() index, ok := zoneCache.toIndex[zone] - if !ok { + zoneCache.RUnlock() + if !ok && !updated { + zoneCache.update(nil, true) + zoneCache.RLock() + index, ok = zoneCache.toIndex[zone] + zoneCache.RUnlock() + } + if !ok { // last resort index, _ = strconv.Atoi(zone) } return index diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_solaris.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_solaris.go index cced74e60d..66b5547868 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_solaris.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_solaris.go @@ -5,7 +5,6 @@ package socket import ( - "errors" "runtime" "syscall" "unsafe" @@ -63,9 +62,9 @@ func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { } func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_stub.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_stub.go index d9f06d00e9..0f61742628 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_stub.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_stub.go @@ -2,12 +2,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows package socket import ( - "errors" "net" "runtime" "unsafe" @@ -36,29 +35,29 @@ func marshalInetAddr(ip net.IP, port int, zone string) []byte { } func parseInetAddr(b []byte, network string) (net.Addr, error) { - return nil, errors.New("not implemented") + return nil, errNotImplemented } func getsockopt(s uintptr, level, name int, b []byte) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } func setsockopt(s uintptr, level, name int, b []byte) error { - return errors.New("not implemented") + return errNotImplemented } func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_unix.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_unix.go index 18eba30853..0eb71283f5 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_unix.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux,!s390x,!386 netbsd openbsd +// +build dragonfly freebsd linux,!s390x,!386 netbsd openbsd package socket diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_windows.go b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_windows.go index 54a470ebe3..d556a44615 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/sys_windows.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/sys_windows.go @@ -5,9 +5,10 @@ package socket import ( - "errors" "syscall" "unsafe" + + "golang.org/x/sys/windows" ) func probeProtocolStack() int { @@ -16,11 +17,11 @@ func probeProtocolStack() int { } const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x17 + sysAF_UNSPEC = windows.AF_UNSPEC + sysAF_INET = windows.AF_INET + sysAF_INET6 = windows.AF_INET6 - sysSOCK_RAW = 0x3 + sysSOCK_RAW = windows.SOCK_RAW ) type sockaddrInet struct { @@ -54,17 +55,17 @@ func setsockopt(s uintptr, level, name int, b []byte) error { } func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") + return 0, errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go new file mode 100644 index 0000000000..e740c8f024 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go @@ -0,0 +1,60 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_aix.go + +// Added for go1.11 compatibility +// +build aix + +package socket + +type iovec struct { + Base *byte + Len uint64 +} + +type msghdr struct { + Name *byte + Namelen uint32 + Iov *iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type mmsghdr struct { + Hdr msghdr + Len uint32 + Pad_cgo_0 [4]byte +} + +type cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type sockaddrInet struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type sockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +const ( + sizeofIovec = 0x10 + sizeofMsghdr = 0x30 + sizeofCmsghdr = 0xc + + sizeofSockaddrInet = 0x10 + sizeofSockaddrInet6 = 0x1c +) diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go index 26f8feff3a..083bda51c3 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1e - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go index e2987f7db8..55c6c9f577 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1e - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go index 26f8feff3a..083bda51c3 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1e - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go index e2987f7db8..55c6c9f577 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1e - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go index c582abd57d..8b7d161d7d 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_dragonfly.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1c - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go index 04a24886c7..3e71ff5743 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1c - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go index 35c7cb9c95..238d90de62 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1c - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go index 04a24886c7..3e71ff5743 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1c - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go new file mode 100644 index 0000000000..238d90de62 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go @@ -0,0 +1,53 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_freebsd.go + +package socket + +type iovec struct { + Base *byte + Len uint64 +} + +type msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type sockaddrInet struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type sockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +const ( + sizeofIovec = 0x10 + sizeofMsghdr = 0x30 + sizeofCmsghdr = 0xc + + sizeofSockaddrInet = 0x10 + sizeofSockaddrInet6 = 0x1c +) diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go index 430206930b..d33025b70d 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 @@ -55,7 +47,6 @@ type sockaddrInet6 struct { const ( sizeofIovec = 0x8 sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 sizeofCmsghdr = 0xc sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go index 1502f6c552..b20d216774 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 @@ -58,7 +50,6 @@ type sockaddrInet6 struct { const ( sizeofIovec = 0x10 sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 sizeofCmsghdr = 0x10 sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go index 430206930b..1bb10a4289 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 @@ -53,9 +45,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 + sizeofIovec = 0x8 + sizeofMsghdr = 0x1c + sizeofCmsghdr = 0xc sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go index 1502f6c552..7f6e8a7fa4 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 @@ -56,9 +48,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 + sizeofIovec = 0x10 + sizeofMsghdr = 0x38 + sizeofCmsghdr = 0x10 sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go index 430206930b..1bb10a4289 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 @@ -53,9 +45,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 + sizeofIovec = 0x8 + sizeofMsghdr = 0x1c + sizeofCmsghdr = 0xc sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go index 1502f6c552..7f6e8a7fa4 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 @@ -56,9 +48,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 + sizeofIovec = 0x10 + sizeofMsghdr = 0x38 + sizeofCmsghdr = 0x10 sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go index 1502f6c552..7f6e8a7fa4 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 @@ -56,9 +48,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 + sizeofIovec = 0x10 + sizeofMsghdr = 0x38 + sizeofCmsghdr = 0x10 sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go index 430206930b..1bb10a4289 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 @@ -53,9 +45,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 + sizeofIovec = 0x8 + sizeofMsghdr = 0x1c + sizeofCmsghdr = 0xc sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go index 1502f6c552..7f6e8a7fa4 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 @@ -56,9 +48,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 + sizeofIovec = 0x10 + sizeofMsghdr = 0x38 + sizeofCmsghdr = 0x10 sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go index 1502f6c552..7f6e8a7fa4 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 @@ -56,9 +48,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 + sizeofIovec = 0x10 + sizeofMsghdr = 0x38 + sizeofCmsghdr = 0x10 sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go new file mode 100644 index 0000000000..f12a1d7682 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go @@ -0,0 +1,59 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_linux.go + +// +build riscv64 + +package socket + +type iovec struct { + Base *byte + Len uint64 +} + +type msghdr struct { + Name *byte + Namelen uint32 + Iov *iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + Pad_cgo_0 [4]byte +} + +type mmsghdr struct { + Hdr msghdr + Len uint32 + Pad_cgo_0 [4]byte +} + +type cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type sockaddrInet struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + X__pad [8]uint8 +} + +type sockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +const ( + sizeofIovec = 0x10 + sizeofMsghdr = 0x38 + + sizeofCmsghdr = 0x10 + + sizeofSockaddrInet = 0x10 + sizeofSockaddrInet6 = 0x1c +) diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go index 1502f6c552..7f6e8a7fa4 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 @@ -56,9 +48,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 + sizeofIovec = 0x10 + sizeofMsghdr = 0x38 + sizeofCmsghdr = 0x10 sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go index db60491fe3..7e258cec29 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_netbsd.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 @@ -55,9 +47,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 + sizeofIovec = 0x8 + sizeofMsghdr = 0x1c + sizeofCmsghdr = 0xc sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go index 2a1a79985a..b3f9c0d7e5 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_netbsd.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 @@ -58,9 +50,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x30 - sizeofMmsghdr = 0x40 + sizeofIovec = 0x10 + sizeofMsghdr = 0x30 + sizeofCmsghdr = 0xc sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go index db60491fe3..7e258cec29 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_netbsd.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 @@ -55,9 +47,9 @@ type sockaddrInet6 struct { } const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 + sizeofIovec = 0x8 + sizeofMsghdr = 0x1c + sizeofCmsghdr = 0xc sizeofSockaddrInet = 0x10 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go new file mode 100644 index 0000000000..da26ef019c --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go @@ -0,0 +1,59 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_netbsd.go + +package socket + +type iovec struct { + Base *byte + Len uint64 +} + +type msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type mmsghdr struct { + Hdr msghdr + Len uint32 + Pad_cgo_0 [4]byte +} + +type cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type sockaddrInet struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type sockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +const ( + sizeofIovec = 0x10 + sizeofMsghdr = 0x30 + sizeofCmsghdr = 0xc + + sizeofSockaddrInet = 0x10 + sizeofSockaddrInet6 = 0x1c +) diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go index 1c836361e8..73655a14c4 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_openbsd.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go index a6c0bf464a..0a4de80f23 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_openbsd.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint64 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go index 1c836361e8..73655a14c4 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_openbsd.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - type iovec struct { Base *byte Len uint32 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go new file mode 100644 index 0000000000..0a4de80f23 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go @@ -0,0 +1,53 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_openbsd.go + +package socket + +type iovec struct { + Base *byte + Len uint64 +} + +type msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *iovec + Iovlen uint32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type sockaddrInet struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type sockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +const ( + sizeofIovec = 0x10 + sizeofMsghdr = 0x30 + sizeofCmsghdr = 0xc + + sizeofSockaddrInet = 0x10 + sizeofSockaddrInet6 = 0x1c +) diff --git a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go index 327c63290c..353cd5fb4e 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go @@ -1,16 +1,8 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_solaris.go package socket -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1a - - sysSOCK_RAW = 0x4 -) - type iovec struct { Base *int8 Len uint64 diff --git a/libnetwork/vendor/golang.org/x/net/internal/socks/socks.go b/libnetwork/vendor/golang.org/x/net/internal/socks/socks.go index d93e699b46..97db2340ec 100644 --- a/libnetwork/vendor/golang.org/x/net/internal/socks/socks.go +++ b/libnetwork/vendor/golang.org/x/net/internal/socks/socks.go @@ -127,7 +127,7 @@ type Dialer struct { // establishing the transport connection. ProxyDial func(context.Context, string, string) (net.Conn, error) - // AuthMethods specifies the list of request authention + // AuthMethods specifies the list of request authentication // methods. // If empty, SOCKS client requests only AuthMethodNotRequired. AuthMethods []AuthMethod @@ -224,6 +224,7 @@ func (d *Dialer) Dial(network, address string) (net.Conn, error) { return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err} } if _, err := d.DialWithConn(context.Background(), c, network, address); err != nil { + c.Close() return nil, err } return c, nil diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/batch.go b/libnetwork/vendor/golang.org/x/net/ipv4/batch.go index 5ce9b3583c..1a3a4fc0c1 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/batch.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/batch.go @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build go1.9 - package ipv4 import ( @@ -91,6 +89,9 @@ func (c *payloadHandler) ReadBatch(ms []Message, flags int) (int, error) { n = 0 err = &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} } + if compatFreeBSD32 && ms[0].NN > 0 { + adjustFreeBSD32(&ms[0]) + } return n, err } } @@ -154,6 +155,9 @@ func (c *packetHandler) ReadBatch(ms []Message, flags int) (int, error) { n = 0 err = &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} } + if compatFreeBSD32 && ms[0].NN > 0 { + adjustFreeBSD32(&ms[0]) + } return n, err } } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/control_bsd.go b/libnetwork/vendor/golang.org/x/net/ipv4/control_bsd.go index 77e7ad5bed..69c4f553cd 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/control_bsd.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/control_bsd.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd netbsd openbsd +// +build aix darwin dragonfly freebsd netbsd openbsd package ipv4 @@ -35,6 +35,7 @@ func marshalInterface(b []byte, cm *ControlMessage) []byte { } func parseInterface(cm *ControlMessage, b []byte) { - sadl := (*syscall.SockaddrDatalink)(unsafe.Pointer(&b[0])) + var sadl syscall.SockaddrDatalink + copy((*[unsafe.Sizeof(sadl)]byte)(unsafe.Pointer(&sadl))[:], b) cm.IfIndex = int(sadl.Index) } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/control_stub.go b/libnetwork/vendor/golang.org/x/net/ipv4/control_stub.go index 5a2f7d8d3c..a0c049d683 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/control_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/control_stub.go @@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows package ipv4 import "golang.org/x/net/internal/socket" func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/control_unix.go b/libnetwork/vendor/golang.org/x/net/ipv4/control_unix.go index e1ae8167b3..b27fa4903a 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/control_unix.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/control_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux netbsd openbsd solaris +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/control_windows.go b/libnetwork/vendor/golang.org/x/net/ipv4/control_windows.go index ce55c66447..82c6306421 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/control_windows.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/control_windows.go @@ -4,13 +4,9 @@ package ipv4 -import ( - "syscall" - - "golang.org/x/net/internal/socket" -) +import "golang.org/x/net/internal/socket" func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error { // TODO(mikio): implement this - return syscall.EWINDOWS + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/dgramopt.go b/libnetwork/vendor/golang.org/x/net/ipv4/dgramopt.go index 36764492d9..c191c22aba 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/dgramopt.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/dgramopt.go @@ -18,7 +18,7 @@ func (c *dgramOpt) MulticastTTL() (int, error) { } so, ok := sockOpts[ssoMulticastTTL] if !ok { - return 0, errOpNoSupport + return 0, errNotImplemented } return so.GetInt(c.Conn) } @@ -31,7 +31,7 @@ func (c *dgramOpt) SetMulticastTTL(ttl int) error { } so, ok := sockOpts[ssoMulticastTTL] if !ok { - return errOpNoSupport + return errNotImplemented } return so.SetInt(c.Conn, ttl) } @@ -44,7 +44,7 @@ func (c *dgramOpt) MulticastInterface() (*net.Interface, error) { } so, ok := sockOpts[ssoMulticastInterface] if !ok { - return nil, errOpNoSupport + return nil, errNotImplemented } return so.getMulticastInterface(c.Conn) } @@ -57,7 +57,7 @@ func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error { } so, ok := sockOpts[ssoMulticastInterface] if !ok { - return errOpNoSupport + return errNotImplemented } return so.setMulticastInterface(c.Conn, ifi) } @@ -70,7 +70,7 @@ func (c *dgramOpt) MulticastLoopback() (bool, error) { } so, ok := sockOpts[ssoMulticastLoopback] if !ok { - return false, errOpNoSupport + return false, errNotImplemented } on, err := so.GetInt(c.Conn) if err != nil { @@ -87,7 +87,7 @@ func (c *dgramOpt) SetMulticastLoopback(on bool) error { } so, ok := sockOpts[ssoMulticastLoopback] if !ok { - return errOpNoSupport + return errNotImplemented } return so.SetInt(c.Conn, boolint(on)) } @@ -107,7 +107,7 @@ func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error { } so, ok := sockOpts[ssoJoinGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP4(group) if grp == nil { @@ -125,7 +125,7 @@ func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error { } so, ok := sockOpts[ssoLeaveGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP4(group) if grp == nil { @@ -146,7 +146,7 @@ func (c *dgramOpt) JoinSourceSpecificGroup(ifi *net.Interface, group, source net } so, ok := sockOpts[ssoJoinSourceGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP4(group) if grp == nil { @@ -167,7 +167,7 @@ func (c *dgramOpt) LeaveSourceSpecificGroup(ifi *net.Interface, group, source ne } so, ok := sockOpts[ssoLeaveSourceGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP4(group) if grp == nil { @@ -189,7 +189,7 @@ func (c *dgramOpt) ExcludeSourceSpecificGroup(ifi *net.Interface, group, source } so, ok := sockOpts[ssoBlockSourceGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP4(group) if grp == nil { @@ -210,7 +210,7 @@ func (c *dgramOpt) IncludeSourceSpecificGroup(ifi *net.Interface, group, source } so, ok := sockOpts[ssoUnblockSourceGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP4(group) if grp == nil { @@ -231,7 +231,7 @@ func (c *dgramOpt) ICMPFilter() (*ICMPFilter, error) { } so, ok := sockOpts[ssoICMPFilter] if !ok { - return nil, errOpNoSupport + return nil, errNotImplemented } return so.getICMPFilter(c.Conn) } @@ -244,7 +244,7 @@ func (c *dgramOpt) SetICMPFilter(f *ICMPFilter) error { } so, ok := sockOpts[ssoICMPFilter] if !ok { - return errOpNoSupport + return errNotImplemented } return so.setICMPFilter(c.Conn, f) } @@ -258,7 +258,7 @@ func (c *dgramOpt) SetBPF(filter []bpf.RawInstruction) error { } so, ok := sockOpts[ssoAttachFilter] if !ok { - return errOpNoSupport + return errNotImplemented } return so.setBPF(c.Conn, filter) } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/doc.go b/libnetwork/vendor/golang.org/x/net/ipv4/doc.go index d12455548f..2458349799 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/doc.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/doc.go @@ -55,7 +55,7 @@ // Multicasting // // The options for multicasting are available for net.UDPConn and -// net.IPconn which are created as network connections that use the +// net.IPConn which are created as network connections that use the // IPv4 transport. A few network facilities must be prepared before // you begin multicasting, at a minimum joining network interfaces and // multicast groups. @@ -209,7 +209,7 @@ // LeaveSourceSpecificGroup for the operation known as "include" mode, // // ssmgroup := net.UDPAddr{IP: net.IPv4(232, 7, 8, 9)} -// ssmsource := net.UDPAddr{IP: net.IPv4(192, 168, 0, 1)}) +// ssmsource := net.UDPAddr{IP: net.IPv4(192, 168, 0, 1)} // if err := p.JoinSourceSpecificGroup(en0, &ssmgroup, &ssmsource); err != nil { // // error handling // } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/endpoint.go b/libnetwork/vendor/golang.org/x/net/ipv4/endpoint.go index 5009463787..4a6d7a85ee 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/endpoint.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/endpoint.go @@ -177,7 +177,7 @@ func NewRawConn(c net.PacketConn) (*RawConn, error) { } so, ok := sockOpts[ssoHeaderPrepend] if !ok { - return nil, errOpNoSupport + return nil, errNotImplemented } if err := so.SetInt(r.dgramOpt.Conn, boolint(true)); err != nil { return nil, err diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/genericopt.go b/libnetwork/vendor/golang.org/x/net/ipv4/genericopt.go index 587ae4a194..51c12371eb 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/genericopt.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/genericopt.go @@ -11,7 +11,7 @@ func (c *genericOpt) TOS() (int, error) { } so, ok := sockOpts[ssoTOS] if !ok { - return 0, errOpNoSupport + return 0, errNotImplemented } return so.GetInt(c.Conn) } @@ -24,7 +24,7 @@ func (c *genericOpt) SetTOS(tos int) error { } so, ok := sockOpts[ssoTOS] if !ok { - return errOpNoSupport + return errNotImplemented } return so.SetInt(c.Conn, tos) } @@ -36,7 +36,7 @@ func (c *genericOpt) TTL() (int, error) { } so, ok := sockOpts[ssoTTL] if !ok { - return 0, errOpNoSupport + return 0, errNotImplemented } return so.GetInt(c.Conn) } @@ -49,7 +49,7 @@ func (c *genericOpt) SetTTL(ttl int) error { } so, ok := sockOpts[ssoTTL] if !ok { - return errOpNoSupport + return errNotImplemented } return so.SetInt(c.Conn, ttl) } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/header.go b/libnetwork/vendor/golang.org/x/net/ipv4/header.go index 358afe2f11..c271ca46cb 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/header.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/header.go @@ -14,9 +14,8 @@ import ( ) const ( - Version = 4 // protocol version - HeaderLen = 20 // header length without extension headers - maxHeaderLen = 60 // sensible default, revisit if later RFCs define new usage of version and header length fields + Version = 4 // protocol version + HeaderLen = 20 // header length without extension headers ) type HeaderFlags int @@ -51,9 +50,13 @@ func (h *Header) String() string { } // Marshal returns the binary encoding of h. +// +// The returned slice is in the format used by a raw IP socket on the +// local system. +// This may differ from the wire format, depending on the system. func (h *Header) Marshal() ([]byte, error) { if h == nil { - return nil, errInvalidConn + return nil, errNilHeader } if h.Len < HeaderLen { return nil, errHeaderTooShort @@ -98,13 +101,20 @@ func (h *Header) Marshal() ([]byte, error) { } // Parse parses b as an IPv4 header and stores the result in h. +// +// The provided b must be in the format used by a raw IP socket on the +// local system. +// This may differ from the wire format, depending on the system. func (h *Header) Parse(b []byte) error { - if h == nil || len(b) < HeaderLen { + if h == nil || b == nil { + return errNilHeader + } + if len(b) < HeaderLen { return errHeaderTooShort } hdrlen := int(b[0]&0x0f) << 2 - if hdrlen > len(b) { - return errBufferTooShort + if len(b) < hdrlen { + return errExtHeaderTooShort } h.Version = int(b[0] >> 4) h.Len = hdrlen @@ -149,6 +159,10 @@ func (h *Header) Parse(b []byte) error { } // ParseHeader parses b as an IPv4 header. +// +// The provided b must be in the format used by a raw IP socket on the +// local system. +// This may differ from the wire format, depending on the system. func ParseHeader(b []byte) (*Header, error) { h := new(Header) if err := h.Parse(b); err != nil { diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/helper.go b/libnetwork/vendor/golang.org/x/net/ipv4/helper.go index 8d8ff98e94..e845a7376e 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/helper.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/helper.go @@ -7,23 +7,36 @@ package ipv4 import ( "errors" "net" + "runtime" + + "golang.org/x/net/internal/socket" ) var ( - errInvalidConn = errors.New("invalid connection") - errMissingAddress = errors.New("missing address") - errMissingHeader = errors.New("missing header") - errHeaderTooShort = errors.New("header too short") - errBufferTooShort = errors.New("buffer too short") - errInvalidConnType = errors.New("invalid conn type") - errOpNoSupport = errors.New("operation not supported") - errNoSuchInterface = errors.New("no such interface") - errNoSuchMulticastInterface = errors.New("no such multicast interface") + errInvalidConn = errors.New("invalid connection") + errMissingAddress = errors.New("missing address") + errNilHeader = errors.New("nil header") + errHeaderTooShort = errors.New("header too short") + errExtHeaderTooShort = errors.New("extension header too short") + errInvalidConnType = errors.New("invalid conn type") + errNotImplemented = errors.New("not implemented on " + runtime.GOOS + "/" + runtime.GOARCH) - // See http://www.freebsd.org/doc/en/books/porters-handbook/freebsd-versions.html. - freebsdVersion uint32 + // See https://www.freebsd.org/doc/en/books/porters-handbook/versions.html. + freebsdVersion uint32 + compatFreeBSD32 bool // 386 emulation on amd64 ) +// See golang.org/issue/30899. +func adjustFreeBSD32(m *socket.Message) { + // FreeBSD 12.0-RELEASE is affected by https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236737 + if 1200086 <= freebsdVersion && freebsdVersion < 1201000 { + l := (m.NN + 4 - 1) &^ (4 - 1) + if m.NN < l && l <= len(m.OOB) { + m.NN = l + } + } +} + func boolint(b bool) int { if b { return 1 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/packet.go b/libnetwork/vendor/golang.org/x/net/ipv4/packet.go index 966bb776f5..7d784e06dd 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/packet.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/packet.go @@ -29,7 +29,35 @@ func (c *packetHandler) ReadFrom(b []byte) (h *Header, p []byte, cm *ControlMess if !c.ok() { return nil, nil, nil, errInvalidConn } - return c.readFrom(b) + c.rawOpt.RLock() + m := socket.Message{ + Buffers: [][]byte{b}, + OOB: NewControlMessage(c.rawOpt.cflags), + } + c.rawOpt.RUnlock() + if err := c.RecvMsg(&m, 0); err != nil { + return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} + } + var hs []byte + if hs, p, err = slicePacket(b[:m.N]); err != nil { + return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} + } + if h, err = ParseHeader(hs); err != nil { + return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} + } + if m.NN > 0 { + if compatFreeBSD32 { + adjustFreeBSD32(&m) + } + cm = new(ControlMessage) + if err := cm.Parse(m.OOB[:m.NN]); err != nil { + return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} + } + } + if src, ok := m.Addr.(*net.IPAddr); ok && cm != nil { + cm.Src = src.IP + } + return } func slicePacket(b []byte) (h, p []byte, err error) { @@ -64,5 +92,26 @@ func (c *packetHandler) WriteTo(h *Header, p []byte, cm *ControlMessage) error { if !c.ok() { return errInvalidConn } - return c.writeTo(h, p, cm) + m := socket.Message{ + OOB: cm.Marshal(), + } + wh, err := h.Marshal() + if err != nil { + return err + } + m.Buffers = [][]byte{wh, p} + dst := new(net.IPAddr) + if cm != nil { + if ip := cm.Dst.To4(); ip != nil { + dst.IP = ip + } + } + if dst.IP == nil { + dst.IP = h.Dst + } + m.Addr = dst + if err := c.SendMsg(&m, 0); err != nil { + return &net.OpError{Op: "write", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Addr: opAddr(dst), Err: err} + } + return nil } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/packet_go1_8.go b/libnetwork/vendor/golang.org/x/net/ipv4/packet_go1_8.go deleted file mode 100644 index b47d186834..0000000000 --- a/libnetwork/vendor/golang.org/x/net/ipv4/packet_go1_8.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2012 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. - -// +build !go1.9 - -package ipv4 - -import "net" - -func (c *packetHandler) readFrom(b []byte) (h *Header, p []byte, cm *ControlMessage, err error) { - c.rawOpt.RLock() - oob := NewControlMessage(c.rawOpt.cflags) - c.rawOpt.RUnlock() - n, nn, _, src, err := c.ReadMsgIP(b, oob) - if err != nil { - return nil, nil, nil, err - } - var hs []byte - if hs, p, err = slicePacket(b[:n]); err != nil { - return nil, nil, nil, err - } - if h, err = ParseHeader(hs); err != nil { - return nil, nil, nil, err - } - if nn > 0 { - cm = new(ControlMessage) - if err := cm.Parse(oob[:nn]); err != nil { - return nil, nil, nil, err - } - } - if src != nil && cm != nil { - cm.Src = src.IP - } - return -} - -func (c *packetHandler) writeTo(h *Header, p []byte, cm *ControlMessage) error { - oob := cm.Marshal() - wh, err := h.Marshal() - if err != nil { - return err - } - dst := new(net.IPAddr) - if cm != nil { - if ip := cm.Dst.To4(); ip != nil { - dst.IP = ip - } - } - if dst.IP == nil { - dst.IP = h.Dst - } - wh = append(wh, p...) - _, _, err = c.WriteMsgIP(wh, oob, dst) - return err -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/packet_go1_9.go b/libnetwork/vendor/golang.org/x/net/ipv4/packet_go1_9.go deleted file mode 100644 index 082c36d73e..0000000000 --- a/libnetwork/vendor/golang.org/x/net/ipv4/packet_go1_9.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2017 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. - -// +build go1.9 - -package ipv4 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (c *packetHandler) readFrom(b []byte) (h *Header, p []byte, cm *ControlMessage, err error) { - c.rawOpt.RLock() - m := socket.Message{ - Buffers: [][]byte{b}, - OOB: NewControlMessage(c.rawOpt.cflags), - } - c.rawOpt.RUnlock() - if err := c.RecvMsg(&m, 0); err != nil { - return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - var hs []byte - if hs, p, err = slicePacket(b[:m.N]); err != nil { - return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - if h, err = ParseHeader(hs); err != nil { - return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - if m.NN > 0 { - cm = new(ControlMessage) - if err := cm.Parse(m.OOB[:m.NN]); err != nil { - return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - } - if src, ok := m.Addr.(*net.IPAddr); ok && cm != nil { - cm.Src = src.IP - } - return -} - -func (c *packetHandler) writeTo(h *Header, p []byte, cm *ControlMessage) error { - m := socket.Message{ - OOB: cm.Marshal(), - } - wh, err := h.Marshal() - if err != nil { - return err - } - m.Buffers = [][]byte{wh, p} - dst := new(net.IPAddr) - if cm != nil { - if ip := cm.Dst.To4(); ip != nil { - dst.IP = ip - } - } - if dst.IP == nil { - dst.IP = h.Dst - } - m.Addr = dst - if err := c.SendMsg(&m, 0); err != nil { - return &net.OpError{Op: "write", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Addr: opAddr(dst), Err: err} - } - return nil -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg.go b/libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg.go index 204a49fea7..e7614661d7 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg.go @@ -2,11 +2,15 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !js,!nacl,!plan9,!windows +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package ipv4 -import "net" +import ( + "net" + + "golang.org/x/net/internal/socket" +) // ReadFrom reads a payload of the received IPv4 datagram, from the // endpoint c, copying the payload into b. It returns the number of @@ -16,7 +20,45 @@ func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net. if !c.ok() { return 0, nil, nil, errInvalidConn } - return c.readFrom(b) + c.rawOpt.RLock() + m := socket.Message{ + OOB: NewControlMessage(c.rawOpt.cflags), + } + c.rawOpt.RUnlock() + switch c.PacketConn.(type) { + case *net.UDPConn: + m.Buffers = [][]byte{b} + if err := c.RecvMsg(&m, 0); err != nil { + return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} + } + case *net.IPConn: + h := make([]byte, HeaderLen) + m.Buffers = [][]byte{h, b} + if err := c.RecvMsg(&m, 0); err != nil { + return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} + } + hdrlen := int(h[0]&0x0f) << 2 + if hdrlen > len(h) { + d := hdrlen - len(h) + copy(b, b[d:]) + m.N -= d + } else { + m.N -= hdrlen + } + default: + return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: errInvalidConnType} + } + if m.NN > 0 { + if compatFreeBSD32 { + adjustFreeBSD32(&m) + } + cm = new(ControlMessage) + if err := cm.Parse(m.OOB[:m.NN]); err != nil { + return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} + } + cm.Src = netAddrToIP4(m.Addr) + } + return m.N, cm, m.Addr, nil } // WriteTo writes a payload of the IPv4 datagram, to the destination @@ -29,5 +71,14 @@ func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n if !c.ok() { return 0, errInvalidConn } - return c.writeTo(b, cm, dst) + m := socket.Message{ + Buffers: [][]byte{b}, + OOB: cm.Marshal(), + Addr: dst, + } + err = c.SendMsg(&m, 0) + if err != nil { + err = &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Addr: opAddr(dst), Err: err} + } + return m.N, err } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_8.go b/libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_8.go deleted file mode 100644 index 8d45599f48..0000000000 --- a/libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_8.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2012 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. - -// +build !go1.9 -// +build !js,!nacl,!plan9,!windows - -package ipv4 - -import "net" - -func (c *payloadHandler) readFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - c.rawOpt.RLock() - oob := NewControlMessage(c.rawOpt.cflags) - c.rawOpt.RUnlock() - var nn int - switch c := c.PacketConn.(type) { - case *net.UDPConn: - if n, nn, _, src, err = c.ReadMsgUDP(b, oob); err != nil { - return 0, nil, nil, err - } - case *net.IPConn: - nb := make([]byte, maxHeaderLen+len(b)) - if n, nn, _, src, err = c.ReadMsgIP(nb, oob); err != nil { - return 0, nil, nil, err - } - hdrlen := int(nb[0]&0x0f) << 2 - copy(b, nb[hdrlen:]) - n -= hdrlen - default: - return 0, nil, nil, &net.OpError{Op: "read", Net: c.LocalAddr().Network(), Source: c.LocalAddr(), Err: errInvalidConnType} - } - if nn > 0 { - cm = new(ControlMessage) - if err = cm.Parse(oob[:nn]); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - } - if cm != nil { - cm.Src = netAddrToIP4(src) - } - return -} - -func (c *payloadHandler) writeTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - oob := cm.Marshal() - if dst == nil { - return 0, &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: errMissingAddress} - } - switch c := c.PacketConn.(type) { - case *net.UDPConn: - n, _, err = c.WriteMsgUDP(b, oob, dst.(*net.UDPAddr)) - case *net.IPConn: - n, _, err = c.WriteMsgIP(b, oob, dst.(*net.IPAddr)) - default: - return 0, &net.OpError{Op: "write", Net: c.LocalAddr().Network(), Source: c.LocalAddr(), Addr: opAddr(dst), Err: errInvalidConnType} - } - return -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_9.go b/libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_9.go deleted file mode 100644 index 4081aad8bc..0000000000 --- a/libnetwork/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_9.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2017 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. - -// +build go1.9 -// +build !js,!nacl,!plan9,!windows - -package ipv4 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (c *payloadHandler) readFrom(b []byte) (int, *ControlMessage, net.Addr, error) { - c.rawOpt.RLock() - m := socket.Message{ - OOB: NewControlMessage(c.rawOpt.cflags), - } - c.rawOpt.RUnlock() - switch c.PacketConn.(type) { - case *net.UDPConn: - m.Buffers = [][]byte{b} - if err := c.RecvMsg(&m, 0); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - case *net.IPConn: - h := make([]byte, HeaderLen) - m.Buffers = [][]byte{h, b} - if err := c.RecvMsg(&m, 0); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - hdrlen := int(h[0]&0x0f) << 2 - if hdrlen > len(h) { - d := hdrlen - len(h) - copy(b, b[d:]) - m.N -= d - } else { - m.N -= hdrlen - } - default: - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: errInvalidConnType} - } - var cm *ControlMessage - if m.NN > 0 { - cm = new(ControlMessage) - if err := cm.Parse(m.OOB[:m.NN]); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - cm.Src = netAddrToIP4(m.Addr) - } - return m.N, cm, m.Addr, nil -} - -func (c *payloadHandler) writeTo(b []byte, cm *ControlMessage, dst net.Addr) (int, error) { - m := socket.Message{ - Buffers: [][]byte{b}, - OOB: cm.Marshal(), - Addr: dst, - } - err := c.SendMsg(&m, 0) - if err != nil { - err = &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Addr: opAddr(dst), Err: err} - } - return m.N, err -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/payload_nocmsg.go b/libnetwork/vendor/golang.org/x/net/ipv4/payload_nocmsg.go index 1d434c61ac..1116256f24 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/payload_nocmsg.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/payload_nocmsg.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build js nacl plan9 windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sockopt_posix.go b/libnetwork/vendor/golang.org/x/net/ipv4/sockopt_posix.go index e96955bc18..dea64519d8 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sockopt_posix.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sockopt_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows package ipv4 @@ -39,7 +39,7 @@ func (so *sockOpt) getICMPFilter(c *socket.Conn) (*ICMPFilter, error) { return nil, err } if n != sizeofICMPFilter { - return nil, errOpNoSupport + return nil, errNotImplemented } return (*ICMPFilter)(unsafe.Pointer(&b[0])), nil } @@ -58,7 +58,7 @@ func (so *sockOpt) setGroup(c *socket.Conn, ifi *net.Interface, grp net.IP) erro case ssoTypeGroupReq: return so.setGroupReq(c, ifi, grp) default: - return errOpNoSupport + return errNotImplemented } } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sockopt_stub.go b/libnetwork/vendor/golang.org/x/net/ipv4/sockopt_stub.go index 23249b782e..37d4806b34 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sockopt_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sockopt_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows package ipv4 @@ -14,29 +14,29 @@ import ( ) func (so *sockOpt) getMulticastInterface(c *socket.Conn) (*net.Interface, error) { - return nil, errOpNoSupport + return nil, errNotImplemented } func (so *sockOpt) setMulticastInterface(c *socket.Conn, ifi *net.Interface) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) getICMPFilter(c *socket.Conn) (*ICMPFilter, error) { - return nil, errOpNoSupport + return nil, errNotImplemented } func (so *sockOpt) setICMPFilter(c *socket.Conn, f *ICMPFilter) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) setGroup(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) setSourceGroup(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) setBPF(c *socket.Conn, f []bpf.RawInstruction) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_aix.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_aix.go new file mode 100644 index 0000000000..3d1201e6d7 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_aix.go @@ -0,0 +1,38 @@ +// Copyright 2019 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. + +// Added for go1.11 compatibility +// +build aix + +package ipv4 + +import ( + "net" + "syscall" + + "golang.org/x/net/internal/iana" + "golang.org/x/net/internal/socket" +) + +var ( + ctlOpts = [ctlMax]ctlOpt{ + ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, + ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, + ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, + } + + sockOpts = map[int]*sockOpt{ + ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}}, + ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}}, + ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}}, + ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}}, + ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 1}}, + ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}}, + ssoReceiveDst: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVDSTADDR, Len: 4}}, + ssoReceiveInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVIF, Len: 4}}, + ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}}, + ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_ADD_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, + ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_DROP_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, + } +) diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreq.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreq.go index 0388cba00c..76d670acaa 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreq.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreq.go @@ -2,17 +2,20 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd netbsd openbsd solaris windows +// +build aix darwin dragonfly freebsd netbsd openbsd solaris windows package ipv4 import ( + "errors" "net" "unsafe" "golang.org/x/net/internal/socket" ) +var errNoSuchInterface = errors.New("no such interface") + func (so *sockOpt) setIPMreq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { mreq := ipMreq{Multiaddr: [4]byte{grp[0], grp[1], grp[2], grp[3]}} if err := setIPMreqInterface(&mreq, ifi); err != nil { diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go index f3919208b6..6dc339ce67 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!windows package ipv4 @@ -13,13 +13,13 @@ import ( ) func (so *sockOpt) setIPMreq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) getMulticastIf(c *socket.Conn) (*net.Interface, error) { - return nil, errOpNoSupport + return nil, errNotImplemented } func (so *sockOpt) setMulticastIf(c *socket.Conn, ifi *net.Interface) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go index 0711d3d786..48ef55624e 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go @@ -13,9 +13,9 @@ import ( ) func (so *sockOpt) getIPMreqn(c *socket.Conn) (*net.Interface, error) { - return nil, errOpNoSupport + return nil, errNotImplemented } func (so *sockOpt) setIPMreqn(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_bpf.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_bpf.go index 9f30b7308e..5c03dce3b7 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_bpf.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_bpf.go @@ -11,13 +11,14 @@ import ( "golang.org/x/net/bpf" "golang.org/x/net/internal/socket" + "golang.org/x/sys/unix" ) func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error { - prog := sockFProg{ + prog := unix.SockFprog{ Len: uint16(len(f)), - Filter: (*sockFilter)(unsafe.Pointer(&f[0])), + Filter: (*unix.SockFilter)(unsafe.Pointer(&f[0])), } - b := (*[sizeofSockFprog]byte)(unsafe.Pointer(&prog))[:sizeofSockFprog] + b := (*[unix.SizeofSockFprog]byte)(unsafe.Pointer(&prog))[:unix.SizeofSockFprog] return so.Set(c, b) } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go index 9a2132093d..5c98642716 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go @@ -12,5 +12,5 @@ import ( ) func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_darwin.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_darwin.go index e8fb191692..ac213c7350 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_darwin.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_darwin.go @@ -6,8 +6,6 @@ package ipv4 import ( "net" - "strconv" - "strings" "syscall" "unsafe" @@ -17,59 +15,33 @@ import ( var ( ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, - ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, - ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, + ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, + ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, + ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, + ctlPacketInfo: {sysIP_PKTINFO, sizeofInetPktinfo, marshalPacketInfo, parsePacketInfo}, } sockOpts = map[int]*sockOpt{ ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}}, ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}}, ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}}, + ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn}, ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 4}}, ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}}, ssoReceiveDst: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVDSTADDR, Len: 4}}, ssoReceiveInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVIF, Len: 4}}, ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}}, ssoStripHeader: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_STRIPHDR, Len: 4}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_ADD_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_DROP_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, + ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, + ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, + ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoPacketInfo: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVPKTINFO, Len: 4}}, } ) -func init() { - // Seems like kern.osreldate is veiled on latest OS X. We use - // kern.osrelease instead. - s, err := syscall.Sysctl("kern.osrelease") - if err != nil { - return - } - ss := strings.Split(s, ".") - if len(ss) == 0 { - return - } - // The IP_PKTINFO and protocol-independent multicast API were - // introduced in OS X 10.7 (Darwin 11). But it looks like - // those features require OS X 10.8 (Darwin 12) or above. - // See http://support.apple.com/kb/HT1633. - if mjver, err := strconv.Atoi(ss[0]); err != nil || mjver < 12 { - return - } - ctlOpts[ctlPacketInfo].name = sysIP_PKTINFO - ctlOpts[ctlPacketInfo].length = sizeofInetPktinfo - ctlOpts[ctlPacketInfo].marshal = marshalPacketInfo - ctlOpts[ctlPacketInfo].parse = parsePacketInfo - sockOpts[ssoPacketInfo] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVPKTINFO, Len: 4}} - sockOpts[ssoMulticastInterface] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn} - sockOpts[ssoJoinGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoLeaveGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoJoinSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoLeaveSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoBlockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoUnblockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} -} - func (pi *inetPktinfo) setIfindex(i int) { pi.Ifindex = uint32(i) } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_freebsd.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_freebsd.go index b80032454a..482873d9a1 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_freebsd.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_freebsd.go @@ -50,7 +50,7 @@ func init() { archs, _ := syscall.Sysctl("kern.supported_archs") for _, s := range strings.Fields(archs) { if s == "amd64" { - freebsd32o64 = true + compatFreeBSD32 = true break } } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_linux.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_linux.go index 60defe1326..cf755c7fba 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_linux.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_linux.go @@ -11,6 +11,7 @@ import ( "golang.org/x/net/internal/iana" "golang.org/x/net/internal/socket" + "golang.org/x/sys/unix" ) var ( @@ -35,7 +36,7 @@ var ( ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoAttachFilter: {Option: socket.Option{Level: sysSOL_SOCKET, Name: sysSO_ATTACH_FILTER, Len: sizeofSockFprog}}, + ssoAttachFilter: {Option: socket.Option{Level: unix.SOL_SOCKET, Name: unix.SO_ATTACH_FILTER, Len: unix.SizeofSockFprog}}, } ) diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_ssmreq.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_ssmreq.go index ae5704e77a..eeced7f313 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_ssmreq.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_ssmreq.go @@ -13,8 +13,6 @@ import ( "golang.org/x/net/internal/socket" ) -var freebsd32o64 bool - func (so *sockOpt) setGroupReq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { var gr groupReq if ifi != nil { @@ -22,7 +20,7 @@ func (so *sockOpt) setGroupReq(c *socket.Conn, ifi *net.Interface, grp net.IP) e } gr.setGroup(grp) var b []byte - if freebsd32o64 { + if compatFreeBSD32 { var d [sizeofGroupReq + 4]byte s := (*[sizeofGroupReq]byte)(unsafe.Pointer(&gr)) copy(d[:4], s[:4]) @@ -41,7 +39,7 @@ func (so *sockOpt) setGroupSourceReq(c *socket.Conn, ifi *net.Interface, grp, sr } gsr.setSourceGroup(grp, src) var b []byte - if freebsd32o64 { + if compatFreeBSD32 { var d [sizeofGroupSourceReq + 4]byte s := (*[sizeofGroupSourceReq]byte)(unsafe.Pointer(&gsr)) copy(d[:4], s[:4]) diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go index e6b7623d0d..c0921674b0 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go @@ -13,9 +13,9 @@ import ( ) func (so *sockOpt) setGroupReq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) setGroupSourceReq(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/sys_stub.go b/libnetwork/vendor/golang.org/x/net/ipv4/sys_stub.go index 4f076473bd..b9c85b334f 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/sys_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/sys_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go new file mode 100644 index 0000000000..c741d5c8ea --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go @@ -0,0 +1,33 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_aix.go + +// Added for go1.11 compatibility +// +build aix + +package ipv4 + +const ( + sysIP_OPTIONS = 0x1 + sysIP_HDRINCL = 0x2 + sysIP_TOS = 0x3 + sysIP_TTL = 0x4 + sysIP_RECVOPTS = 0x5 + sysIP_RECVRETOPTS = 0x6 + sysIP_RECVDSTADDR = 0x7 + sysIP_RETOPTS = 0x8 + sysIP_RECVIF = 0x20 + sysIP_RECVTTL = 0x22 + + sysIP_MULTICAST_IF = 0x9 + sysIP_MULTICAST_TTL = 0xa + sysIP_MULTICAST_LOOP = 0xb + sysIP_ADD_MEMBERSHIP = 0xc + sysIP_DROP_MEMBERSHIP = 0xd + + sizeofIPMreq = 0x8 +) + +type ipMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_darwin.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_darwin.go index c07cc883fc..e05a251ba0 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_darwin.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_darwin.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go index c4365e9e71..6d65e9fcb8 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_dragonfly.go package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go index 8c4aec94c8..136e2b8f1d 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go index 4b10b7c575..4f730f19ef 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go index 4b10b7c575..4f730f19ef 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm64.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm64.go new file mode 100644 index 0000000000..ecebf32723 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm64.go @@ -0,0 +1,93 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_freebsd.go + +package ipv4 + +const ( + sysIP_OPTIONS = 0x1 + sysIP_HDRINCL = 0x2 + sysIP_TOS = 0x3 + sysIP_TTL = 0x4 + sysIP_RECVOPTS = 0x5 + sysIP_RECVRETOPTS = 0x6 + sysIP_RECVDSTADDR = 0x7 + sysIP_SENDSRCADDR = 0x7 + sysIP_RETOPTS = 0x8 + sysIP_RECVIF = 0x14 + sysIP_ONESBCAST = 0x17 + sysIP_BINDANY = 0x18 + sysIP_RECVTTL = 0x41 + sysIP_MINTTL = 0x42 + sysIP_DONTFRAG = 0x43 + sysIP_RECVTOS = 0x44 + + sysIP_MULTICAST_IF = 0x9 + sysIP_MULTICAST_TTL = 0xa + sysIP_MULTICAST_LOOP = 0xb + sysIP_ADD_MEMBERSHIP = 0xc + sysIP_DROP_MEMBERSHIP = 0xd + sysIP_MULTICAST_VIF = 0xe + sysIP_ADD_SOURCE_MEMBERSHIP = 0x46 + sysIP_DROP_SOURCE_MEMBERSHIP = 0x47 + sysIP_BLOCK_SOURCE = 0x48 + sysIP_UNBLOCK_SOURCE = 0x49 + sysMCAST_JOIN_GROUP = 0x50 + sysMCAST_LEAVE_GROUP = 0x51 + sysMCAST_JOIN_SOURCE_GROUP = 0x52 + sysMCAST_LEAVE_SOURCE_GROUP = 0x53 + sysMCAST_BLOCK_SOURCE = 0x54 + sysMCAST_UNBLOCK_SOURCE = 0x55 + + sizeofSockaddrStorage = 0x80 + sizeofSockaddrInet = 0x10 + + sizeofIPMreq = 0x8 + sizeofIPMreqn = 0xc + sizeofIPMreqSource = 0xc + sizeofGroupReq = 0x88 + sizeofGroupSourceReq = 0x108 +) + +type sockaddrStorage struct { + Len uint8 + Family uint8 + X__ss_pad1 [6]uint8 + X__ss_align int64 + X__ss_pad2 [112]uint8 +} + +type sockaddrInet struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type ipMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type ipMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type ipMreqSource struct { + Multiaddr [4]byte /* in_addr */ + Sourceaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type groupReq struct { + Interface uint32 + Group sockaddrStorage +} + +type groupSourceReq struct { + Interface uint32 + Group sockaddrStorage + Source sockaddrStorage +} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_386.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_386.go index c0260f0ce3..1c7fdfa13a 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_386.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x104 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x8 ) type kernelSockaddrStorage struct { @@ -133,16 +128,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go index 9c967eaa64..a04e785187 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -135,16 +130,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go index c0260f0ce3..1c7fdfa13a 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x104 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x8 ) type kernelSockaddrStorage struct { @@ -133,16 +128,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go index 9c967eaa64..a04e785187 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -135,16 +130,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go index c0260f0ce3..1c7fdfa13a 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x104 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x8 ) type kernelSockaddrStorage struct { @@ -133,16 +128,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go index 9c967eaa64..a04e785187 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -135,16 +130,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go index 9c967eaa64..a04e785187 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -135,16 +130,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go index c0260f0ce3..1c7fdfa13a 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x104 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x8 ) type kernelSockaddrStorage struct { @@ -133,16 +128,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go index f65bd9a7a6..3c5ea54731 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x104 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x8 ) type kernelSockaddrStorage struct { @@ -133,16 +128,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go index 9c967eaa64..a04e785187 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -135,16 +130,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go index 9c967eaa64..a04e785187 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -135,16 +130,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go new file mode 100644 index 0000000000..e626134a8b --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go @@ -0,0 +1,134 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_linux.go + +// +build riscv64 + +package ipv4 + +const ( + sysIP_TOS = 0x1 + sysIP_TTL = 0x2 + sysIP_HDRINCL = 0x3 + sysIP_OPTIONS = 0x4 + sysIP_ROUTER_ALERT = 0x5 + sysIP_RECVOPTS = 0x6 + sysIP_RETOPTS = 0x7 + sysIP_PKTINFO = 0x8 + sysIP_PKTOPTIONS = 0x9 + sysIP_MTU_DISCOVER = 0xa + sysIP_RECVERR = 0xb + sysIP_RECVTTL = 0xc + sysIP_RECVTOS = 0xd + sysIP_MTU = 0xe + sysIP_FREEBIND = 0xf + sysIP_TRANSPARENT = 0x13 + sysIP_RECVRETOPTS = 0x7 + sysIP_ORIGDSTADDR = 0x14 + sysIP_RECVORIGDSTADDR = 0x14 + sysIP_MINTTL = 0x15 + sysIP_NODEFRAG = 0x16 + sysIP_UNICAST_IF = 0x32 + + sysIP_MULTICAST_IF = 0x20 + sysIP_MULTICAST_TTL = 0x21 + sysIP_MULTICAST_LOOP = 0x22 + sysIP_ADD_MEMBERSHIP = 0x23 + sysIP_DROP_MEMBERSHIP = 0x24 + sysIP_UNBLOCK_SOURCE = 0x25 + sysIP_BLOCK_SOURCE = 0x26 + sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 + sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 + sysIP_MSFILTER = 0x29 + sysMCAST_JOIN_GROUP = 0x2a + sysMCAST_LEAVE_GROUP = 0x2d + sysMCAST_JOIN_SOURCE_GROUP = 0x2e + sysMCAST_LEAVE_SOURCE_GROUP = 0x2f + sysMCAST_BLOCK_SOURCE = 0x2b + sysMCAST_UNBLOCK_SOURCE = 0x2c + sysMCAST_MSFILTER = 0x30 + sysIP_MULTICAST_ALL = 0x31 + + sysICMP_FILTER = 0x1 + + sysSO_EE_ORIGIN_NONE = 0x0 + sysSO_EE_ORIGIN_LOCAL = 0x1 + sysSO_EE_ORIGIN_ICMP = 0x2 + sysSO_EE_ORIGIN_ICMP6 = 0x3 + sysSO_EE_ORIGIN_TXSTATUS = 0x4 + sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 + + sizeofKernelSockaddrStorage = 0x80 + sizeofSockaddrInet = 0x10 + sizeofInetPktinfo = 0xc + sizeofSockExtendedErr = 0x10 + + sizeofIPMreq = 0x8 + sizeofIPMreqn = 0xc + sizeofIPMreqSource = 0xc + sizeofGroupReq = 0x88 + sizeofGroupSourceReq = 0x108 + + sizeofICMPFilter = 0x4 +) + +type kernelSockaddrStorage struct { + Family uint16 + X__data [126]int8 +} + +type sockaddrInet struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + X__pad [8]uint8 +} + +type inetPktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type sockExtendedErr struct { + Errno uint32 + Origin uint8 + Type uint8 + Code uint8 + Pad uint8 + Info uint32 + Data uint32 +} + +type ipMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type ipMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type ipMreqSource struct { + Multiaddr uint32 + Interface uint32 + Sourceaddr uint32 +} + +type groupReq struct { + Interface uint32 + Pad_cgo_0 [4]byte + Group kernelSockaddrStorage +} + +type groupSourceReq struct { + Interface uint32 + Pad_cgo_0 [4]byte + Group kernelSockaddrStorage + Source kernelSockaddrStorage +} + +type icmpFilter struct { + Data uint32 +} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go index 9c967eaa64..a04e785187 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 @@ -55,9 +55,6 @@ const ( sysSO_EE_ORIGIN_TXSTATUS = 0x4 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet = 0x10 sizeofInetPktinfo = 0xc @@ -70,8 +67,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -135,16 +130,3 @@ type groupSourceReq struct { type icmpFilter struct { Data uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_netbsd.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_netbsd.go index fd3624d93c..8cfc648ad7 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_netbsd.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_netbsd.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_netbsd.go package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_openbsd.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_openbsd.go index 12f36be759..37629cb0ab 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_openbsd.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_openbsd.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_openbsd.go package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_solaris.go b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_solaris.go index 0a3875cc41..cb80a308b0 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv4/zsys_solaris.go +++ b/libnetwork/vendor/golang.org/x/net/ipv4/zsys_solaris.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_solaris.go package ipv4 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/batch.go b/libnetwork/vendor/golang.org/x/net/ipv6/batch.go index 10d6492451..2ccb9849c7 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/batch.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/batch.go @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build go1.9 - package ipv6 import ( diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go b/libnetwork/vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go index eec529c205..8c221b5989 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux netbsd openbsd solaris +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/control_stub.go b/libnetwork/vendor/golang.org/x/net/ipv6/control_stub.go index a045f28f74..1d773cbcc8 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/control_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/control_stub.go @@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows package ipv6 import "golang.org/x/net/internal/socket" func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/control_unix.go b/libnetwork/vendor/golang.org/x/net/ipv6/control_unix.go index 66515060a8..0971a008bf 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/control_unix.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/control_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux netbsd openbsd solaris +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/control_windows.go b/libnetwork/vendor/golang.org/x/net/ipv6/control_windows.go index ef2563b3fc..8882d81934 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/control_windows.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/control_windows.go @@ -4,13 +4,9 @@ package ipv6 -import ( - "syscall" - - "golang.org/x/net/internal/socket" -) +import "golang.org/x/net/internal/socket" func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error { // TODO(mikio): implement this - return syscall.EWINDOWS + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/dgramopt.go b/libnetwork/vendor/golang.org/x/net/ipv6/dgramopt.go index eea4fde256..1f422e71dc 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/dgramopt.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/dgramopt.go @@ -18,7 +18,7 @@ func (c *dgramOpt) MulticastHopLimit() (int, error) { } so, ok := sockOpts[ssoMulticastHopLimit] if !ok { - return 0, errOpNoSupport + return 0, errNotImplemented } return so.GetInt(c.Conn) } @@ -31,7 +31,7 @@ func (c *dgramOpt) SetMulticastHopLimit(hoplim int) error { } so, ok := sockOpts[ssoMulticastHopLimit] if !ok { - return errOpNoSupport + return errNotImplemented } return so.SetInt(c.Conn, hoplim) } @@ -44,7 +44,7 @@ func (c *dgramOpt) MulticastInterface() (*net.Interface, error) { } so, ok := sockOpts[ssoMulticastInterface] if !ok { - return nil, errOpNoSupport + return nil, errNotImplemented } return so.getMulticastInterface(c.Conn) } @@ -57,7 +57,7 @@ func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error { } so, ok := sockOpts[ssoMulticastInterface] if !ok { - return errOpNoSupport + return errNotImplemented } return so.setMulticastInterface(c.Conn, ifi) } @@ -70,7 +70,7 @@ func (c *dgramOpt) MulticastLoopback() (bool, error) { } so, ok := sockOpts[ssoMulticastLoopback] if !ok { - return false, errOpNoSupport + return false, errNotImplemented } on, err := so.GetInt(c.Conn) if err != nil { @@ -87,7 +87,7 @@ func (c *dgramOpt) SetMulticastLoopback(on bool) error { } so, ok := sockOpts[ssoMulticastLoopback] if !ok { - return errOpNoSupport + return errNotImplemented } return so.SetInt(c.Conn, boolint(on)) } @@ -107,7 +107,7 @@ func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error { } so, ok := sockOpts[ssoJoinGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP16(group) if grp == nil { @@ -125,7 +125,7 @@ func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error { } so, ok := sockOpts[ssoLeaveGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP16(group) if grp == nil { @@ -146,7 +146,7 @@ func (c *dgramOpt) JoinSourceSpecificGroup(ifi *net.Interface, group, source net } so, ok := sockOpts[ssoJoinSourceGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP16(group) if grp == nil { @@ -167,7 +167,7 @@ func (c *dgramOpt) LeaveSourceSpecificGroup(ifi *net.Interface, group, source ne } so, ok := sockOpts[ssoLeaveSourceGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP16(group) if grp == nil { @@ -189,7 +189,7 @@ func (c *dgramOpt) ExcludeSourceSpecificGroup(ifi *net.Interface, group, source } so, ok := sockOpts[ssoBlockSourceGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP16(group) if grp == nil { @@ -210,7 +210,7 @@ func (c *dgramOpt) IncludeSourceSpecificGroup(ifi *net.Interface, group, source } so, ok := sockOpts[ssoUnblockSourceGroup] if !ok { - return errOpNoSupport + return errNotImplemented } grp := netAddrToIP16(group) if grp == nil { @@ -233,7 +233,7 @@ func (c *dgramOpt) Checksum() (on bool, offset int, err error) { } so, ok := sockOpts[ssoChecksum] if !ok { - return false, 0, errOpNoSupport + return false, 0, errNotImplemented } offset, err = so.GetInt(c.Conn) if err != nil { @@ -254,7 +254,7 @@ func (c *dgramOpt) SetChecksum(on bool, offset int) error { } so, ok := sockOpts[ssoChecksum] if !ok { - return errOpNoSupport + return errNotImplemented } if !on { offset = -1 @@ -269,7 +269,7 @@ func (c *dgramOpt) ICMPFilter() (*ICMPFilter, error) { } so, ok := sockOpts[ssoICMPFilter] if !ok { - return nil, errOpNoSupport + return nil, errNotImplemented } return so.getICMPFilter(c.Conn) } @@ -281,7 +281,7 @@ func (c *dgramOpt) SetICMPFilter(f *ICMPFilter) error { } so, ok := sockOpts[ssoICMPFilter] if !ok { - return errOpNoSupport + return errNotImplemented } return so.setICMPFilter(c.Conn, f) } @@ -295,7 +295,7 @@ func (c *dgramOpt) SetBPF(filter []bpf.RawInstruction) error { } so, ok := sockOpts[ssoAttachFilter] if !ok { - return errOpNoSupport + return errNotImplemented } return so.setBPF(c.Conn, filter) } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/doc.go b/libnetwork/vendor/golang.org/x/net/ipv6/doc.go index cb40006232..e0be9d50d7 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/doc.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/doc.go @@ -56,7 +56,7 @@ // Multicasting // // The options for multicasting are available for net.UDPConn and -// net.IPconn which are created as network connections that use the +// net.IPConn which are created as network connections that use the // IPv6 transport. A few network facilities must be prepared before // you begin multicasting, at a minimum joining network interfaces and // multicast groups. diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/endpoint.go b/libnetwork/vendor/golang.org/x/net/ipv6/endpoint.go index 9325756396..f534a0bf38 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/endpoint.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/endpoint.go @@ -37,7 +37,7 @@ func (c *Conn) PathMTU() (int, error) { } so, ok := sockOpts[ssoPathMTU] if !ok { - return 0, errOpNoSupport + return 0, errNotImplemented } _, mtu, err := so.getMTUInfo(c.Conn) if err != nil { diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/genericopt.go b/libnetwork/vendor/golang.org/x/net/ipv6/genericopt.go index 1a18f7549a..0326aed6de 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/genericopt.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/genericopt.go @@ -12,7 +12,7 @@ func (c *genericOpt) TrafficClass() (int, error) { } so, ok := sockOpts[ssoTrafficClass] if !ok { - return 0, errOpNoSupport + return 0, errNotImplemented } return so.GetInt(c.Conn) } @@ -25,7 +25,7 @@ func (c *genericOpt) SetTrafficClass(tclass int) error { } so, ok := sockOpts[ssoTrafficClass] if !ok { - return errOpNoSupport + return errNotImplemented } return so.SetInt(c.Conn, tclass) } @@ -37,7 +37,7 @@ func (c *genericOpt) HopLimit() (int, error) { } so, ok := sockOpts[ssoHopLimit] if !ok { - return 0, errOpNoSupport + return 0, errNotImplemented } return so.GetInt(c.Conn) } @@ -50,7 +50,7 @@ func (c *genericOpt) SetHopLimit(hoplim int) error { } so, ok := sockOpts[ssoHopLimit] if !ok { - return errOpNoSupport + return errNotImplemented } return so.SetInt(c.Conn, hoplim) } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/helper.go b/libnetwork/vendor/golang.org/x/net/ipv6/helper.go index 7ac5352294..c2d508f9c3 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/helper.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/helper.go @@ -7,6 +7,7 @@ package ipv6 import ( "errors" "net" + "runtime" ) var ( @@ -14,8 +15,7 @@ var ( errMissingAddress = errors.New("missing address") errHeaderTooShort = errors.New("header too short") errInvalidConnType = errors.New("invalid conn type") - errOpNoSupport = errors.New("operation not supported") - errNoSuchInterface = errors.New("no such interface") + errNotImplemented = errors.New("not implemented on " + runtime.GOOS + "/" + runtime.GOARCH) ) func boolint(b bool) int { diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/icmp_bsd.go b/libnetwork/vendor/golang.org/x/net/ipv6/icmp_bsd.go index e1a791de46..b03025cdcc 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/icmp_bsd.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/icmp_bsd.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd netbsd openbsd +// +build aix darwin dragonfly freebsd netbsd openbsd package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/icmp_stub.go b/libnetwork/vendor/golang.org/x/net/ipv6/icmp_stub.go index c4b9be6dbf..370e51acd1 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/icmp_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/icmp_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg.go b/libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg.go index 3f23b5d21d..284a04278e 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg.go @@ -2,11 +2,15 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !js,!nacl,!plan9,!windows +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package ipv6 -import "net" +import ( + "net" + + "golang.org/x/net/internal/socket" +) // ReadFrom reads a payload of the received IPv6 datagram, from the // endpoint c, copying the payload into b. It returns the number of @@ -16,7 +20,32 @@ func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net. if !c.ok() { return 0, nil, nil, errInvalidConn } - return c.readFrom(b) + c.rawOpt.RLock() + m := socket.Message{ + Buffers: [][]byte{b}, + OOB: NewControlMessage(c.rawOpt.cflags), + } + c.rawOpt.RUnlock() + switch c.PacketConn.(type) { + case *net.UDPConn: + if err := c.RecvMsg(&m, 0); err != nil { + return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} + } + case *net.IPConn: + if err := c.RecvMsg(&m, 0); err != nil { + return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} + } + default: + return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: errInvalidConnType} + } + if m.NN > 0 { + cm = new(ControlMessage) + if err := cm.Parse(m.OOB[:m.NN]); err != nil { + return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} + } + cm.Src = netAddrToIP16(m.Addr) + } + return m.N, cm, m.Addr, nil } // WriteTo writes a payload of the IPv6 datagram, to the destination @@ -28,5 +57,14 @@ func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n if !c.ok() { return 0, errInvalidConn } - return c.writeTo(b, cm, dst) + m := socket.Message{ + Buffers: [][]byte{b}, + OOB: cm.Marshal(), + Addr: dst, + } + err = c.SendMsg(&m, 0) + if err != nil { + err = &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Addr: opAddr(dst), Err: err} + } + return m.N, err } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_8.go b/libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_8.go deleted file mode 100644 index bc4209db70..0000000000 --- a/libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_8.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2013 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. - -// +build !go1.9 -// +build !js,!nacl,!plan9,!windows - -package ipv6 - -import "net" - -func (c *payloadHandler) readFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - c.rawOpt.RLock() - oob := NewControlMessage(c.rawOpt.cflags) - c.rawOpt.RUnlock() - var nn int - switch c := c.PacketConn.(type) { - case *net.UDPConn: - if n, nn, _, src, err = c.ReadMsgUDP(b, oob); err != nil { - return 0, nil, nil, err - } - case *net.IPConn: - if n, nn, _, src, err = c.ReadMsgIP(b, oob); err != nil { - return 0, nil, nil, err - } - default: - return 0, nil, nil, &net.OpError{Op: "read", Net: c.LocalAddr().Network(), Source: c.LocalAddr(), Err: errInvalidConnType} - } - if nn > 0 { - cm = new(ControlMessage) - if err = cm.Parse(oob[:nn]); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - } - if cm != nil { - cm.Src = netAddrToIP16(src) - } - return -} - -func (c *payloadHandler) writeTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - oob := cm.Marshal() - if dst == nil { - return 0, &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: errMissingAddress} - } - switch c := c.PacketConn.(type) { - case *net.UDPConn: - n, _, err = c.WriteMsgUDP(b, oob, dst.(*net.UDPAddr)) - case *net.IPConn: - n, _, err = c.WriteMsgIP(b, oob, dst.(*net.IPAddr)) - default: - return 0, &net.OpError{Op: "write", Net: c.LocalAddr().Network(), Source: c.LocalAddr(), Addr: opAddr(dst), Err: errInvalidConnType} - } - return -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_9.go b/libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_9.go deleted file mode 100644 index 7dd6504802..0000000000 --- a/libnetwork/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_9.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2017 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. - -// +build go1.9 -// +build !js,!nacl,!plan9,!windows - -package ipv6 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (c *payloadHandler) readFrom(b []byte) (int, *ControlMessage, net.Addr, error) { - c.rawOpt.RLock() - m := socket.Message{ - Buffers: [][]byte{b}, - OOB: NewControlMessage(c.rawOpt.cflags), - } - c.rawOpt.RUnlock() - switch c.PacketConn.(type) { - case *net.UDPConn: - if err := c.RecvMsg(&m, 0); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - case *net.IPConn: - if err := c.RecvMsg(&m, 0); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - default: - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: errInvalidConnType} - } - var cm *ControlMessage - if m.NN > 0 { - cm = new(ControlMessage) - if err := cm.Parse(m.OOB[:m.NN]); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - cm.Src = netAddrToIP16(m.Addr) - } - return m.N, cm, m.Addr, nil -} - -func (c *payloadHandler) writeTo(b []byte, cm *ControlMessage, dst net.Addr) (int, error) { - m := socket.Message{ - Buffers: [][]byte{b}, - OOB: cm.Marshal(), - Addr: dst, - } - err := c.SendMsg(&m, 0) - if err != nil { - err = &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Addr: opAddr(dst), Err: err} - } - return m.N, err -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/payload_nocmsg.go b/libnetwork/vendor/golang.org/x/net/ipv6/payload_nocmsg.go index 459142d264..c5a4c96752 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/payload_nocmsg.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/payload_nocmsg.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build js nacl plan9 windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sockopt_posix.go b/libnetwork/vendor/golang.org/x/net/ipv6/sockopt_posix.go index 0eac86eb8c..824c623cce 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sockopt_posix.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sockopt_posix.go @@ -2,12 +2,13 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows package ipv6 import ( "net" + "runtime" "unsafe" "golang.org/x/net/bpf" @@ -37,7 +38,7 @@ func (so *sockOpt) getICMPFilter(c *socket.Conn) (*ICMPFilter, error) { return nil, err } if n != sizeofICMPv6Filter { - return nil, errOpNoSupport + return nil, errNotImplemented } return (*ICMPFilter)(unsafe.Pointer(&b[0])), nil } @@ -54,10 +55,11 @@ func (so *sockOpt) getMTUInfo(c *socket.Conn) (*net.Interface, int, error) { return nil, 0, err } if n != sizeofIPv6Mtuinfo { - return nil, 0, errOpNoSupport + return nil, 0, errNotImplemented } mi := (*ipv6Mtuinfo)(unsafe.Pointer(&b[0])) - if mi.Addr.Scope_id == 0 { + if mi.Addr.Scope_id == 0 || runtime.GOOS == "aix" { + // AIX kernel might return a wrong address. return nil, int(mi.Mtu), nil } ifi, err := net.InterfaceByIndex(int(mi.Addr.Scope_id)) @@ -74,7 +76,7 @@ func (so *sockOpt) setGroup(c *socket.Conn, ifi *net.Interface, grp net.IP) erro case ssoTypeGroupReq: return so.setGroupReq(c, ifi, grp) default: - return errOpNoSupport + return errNotImplemented } } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sockopt_stub.go b/libnetwork/vendor/golang.org/x/net/ipv6/sockopt_stub.go index 1f4a273e44..0a87a93bbd 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sockopt_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sockopt_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows package ipv6 @@ -14,33 +14,33 @@ import ( ) func (so *sockOpt) getMulticastInterface(c *socket.Conn) (*net.Interface, error) { - return nil, errOpNoSupport + return nil, errNotImplemented } func (so *sockOpt) setMulticastInterface(c *socket.Conn, ifi *net.Interface) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) getICMPFilter(c *socket.Conn) (*ICMPFilter, error) { - return nil, errOpNoSupport + return nil, errNotImplemented } func (so *sockOpt) setICMPFilter(c *socket.Conn, f *ICMPFilter) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) getMTUInfo(c *socket.Conn) (*net.Interface, int, error) { - return nil, 0, errOpNoSupport + return nil, 0, errNotImplemented } func (so *sockOpt) setGroup(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) setSourceGroup(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) setBPF(c *socket.Conn, f []bpf.RawInstruction) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_aix.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_aix.go new file mode 100644 index 0000000000..bce7091fb0 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_aix.go @@ -0,0 +1,77 @@ +// Copyright 2019 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. + +// Added for go1.11 compatibility +// +build aix + +package ipv6 + +import ( + "net" + "syscall" + "unsafe" + + "golang.org/x/net/internal/iana" + "golang.org/x/net/internal/socket" +) + +var ( + ctlOpts = [ctlMax]ctlOpt{ + ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}, + ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}, + ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}, + ctlNextHop: {sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop}, + ctlPathMTU: {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}, + } + + sockOpts = map[int]*sockOpt{ + ssoTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}}, + ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, + ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, + ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, + ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, + ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}}, + ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}}, + ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}}, + ssoReceivePathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}}, + ssoPathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}}, + ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}}, + ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}}, + ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_JOIN_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, + ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_LEAVE_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, + } +) + +func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) { + sa.Len = sizeofSockaddrInet6 + sa.Family = syscall.AF_INET6 + copy(sa.Addr[:], ip) + sa.Scope_id = uint32(i) +} + +func (pi *inet6Pktinfo) setIfindex(i int) { + pi.Ifindex = int32(i) +} + +func (mreq *ipv6Mreq) setIfindex(i int) { + mreq.Interface = uint32(i) +} + +func (gr *groupReq) setGroup(grp net.IP) { + sa := (*sockaddrInet6)(unsafe.Pointer(uintptr(unsafe.Pointer(gr)) + 4)) + sa.Len = sizeofSockaddrInet6 + sa.Family = syscall.AF_INET6 + copy(sa.Addr[:], grp) +} + +func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) { + sa := (*sockaddrInet6)(unsafe.Pointer(uintptr(unsafe.Pointer(gsr)) + 4)) + sa.Len = sizeofSockaddrInet6 + sa.Family = syscall.AF_INET6 + copy(sa.Addr[:], grp) + sa = (*sockaddrInet6)(unsafe.Pointer(uintptr(unsafe.Pointer(gsr)) + 132)) + sa.Len = sizeofSockaddrInet6 + sa.Family = syscall.AF_INET6 + copy(sa.Addr[:], src) +} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_asmreq.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_asmreq.go index b0510c0b5d..8c3934c3ee 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sys_asmreq.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_asmreq.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_asmreq_stub.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_asmreq_stub.go index eece96187b..87ae481814 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sys_asmreq_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_asmreq_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows package ipv6 @@ -13,5 +13,5 @@ import ( ) func (so *sockOpt) setIPMreq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_bpf.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_bpf.go index b2dbcb2f28..90ef4dfaf4 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sys_bpf.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_bpf.go @@ -11,13 +11,14 @@ import ( "golang.org/x/net/bpf" "golang.org/x/net/internal/socket" + "golang.org/x/sys/unix" ) func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error { - prog := sockFProg{ + prog := unix.SockFprog{ Len: uint16(len(f)), - Filter: (*sockFilter)(unsafe.Pointer(&f[0])), + Filter: (*unix.SockFilter)(unsafe.Pointer(&f[0])), } - b := (*[sizeofSockFprog]byte)(unsafe.Pointer(&prog))[:sizeofSockFprog] + b := (*[unix.SizeofSockFprog]byte)(unsafe.Pointer(&prog))[:unix.SizeofSockFprog] return so.Set(c, b) } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_bpf_stub.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_bpf_stub.go index 676bea555f..eb9f831623 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sys_bpf_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_bpf_stub.go @@ -12,5 +12,5 @@ import ( ) func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_darwin.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_darwin.go index e3d0443927..12cc5cb2c1 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sys_darwin.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_darwin.go @@ -6,8 +6,6 @@ package ipv6 import ( "net" - "strconv" - "strings" "syscall" "unsafe" @@ -17,61 +15,35 @@ import ( var ( ctlOpts = [ctlMax]ctlOpt{ - ctlHopLimit: {sysIPV6_2292HOPLIMIT, 4, marshal2292HopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_2292PKTINFO, sizeofInet6Pktinfo, marshal2292PacketInfo, parsePacketInfo}, + ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}, + ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}, + ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}, + ctlNextHop: {sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop}, + ctlPathMTU: {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}, } sockOpts = map[int]*sockOpt{ - ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, - ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, - ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_2292HOPLIMIT, Len: 4}}, - ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_2292PKTINFO, Len: 4}}, - ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}}, - ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_JOIN_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_LEAVE_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, + ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, + ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, + ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, + ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, + ssoTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}}, + ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}}, + ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}}, + ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}}, + ssoReceivePathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}}, + ssoPathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}}, + ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}}, + ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}}, + ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, + ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, + ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, } ) -func init() { - // Seems like kern.osreldate is veiled on latest OS X. We use - // kern.osrelease instead. - s, err := syscall.Sysctl("kern.osrelease") - if err != nil { - return - } - ss := strings.Split(s, ".") - if len(ss) == 0 { - return - } - // The IP_PKTINFO and protocol-independent multicast API were - // introduced in OS X 10.7 (Darwin 11). But it looks like - // those features require OS X 10.8 (Darwin 12) or above. - // See http://support.apple.com/kb/HT1633. - if mjver, err := strconv.Atoi(ss[0]); err != nil || mjver < 12 { - return - } - ctlOpts[ctlTrafficClass] = ctlOpt{sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass} - ctlOpts[ctlHopLimit] = ctlOpt{sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit} - ctlOpts[ctlPacketInfo] = ctlOpt{sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo} - ctlOpts[ctlNextHop] = ctlOpt{sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop} - ctlOpts[ctlPathMTU] = ctlOpt{sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU} - sockOpts[ssoTrafficClass] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}} - sockOpts[ssoReceiveTrafficClass] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}} - sockOpts[ssoReceiveHopLimit] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}} - sockOpts[ssoReceivePacketInfo] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}} - sockOpts[ssoReceivePathMTU] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}} - sockOpts[ssoPathMTU] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}} - sockOpts[ssoJoinGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoLeaveGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoJoinSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoLeaveSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoBlockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoUnblockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} -} - func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) { sa.Len = sizeofSockaddrInet6 sa.Family = syscall.AF_INET6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_freebsd.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_freebsd.go index e9349dc2cc..85a9f5d07d 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sys_freebsd.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_freebsd.go @@ -51,7 +51,7 @@ func init() { archs, _ := syscall.Sysctl("kern.supported_archs") for _, s := range strings.Fields(archs) { if s == "amd64" { - freebsd32o64 = true + compatFreeBSD32 = true break } } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_linux.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_linux.go index bc218103c1..96e8093a30 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sys_linux.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_linux.go @@ -11,6 +11,7 @@ import ( "golang.org/x/net/internal/iana" "golang.org/x/net/internal/socket" + "golang.org/x/sys/unix" ) var ( @@ -40,7 +41,7 @@ var ( ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoAttachFilter: {Option: socket.Option{Level: sysSOL_SOCKET, Name: sysSO_ATTACH_FILTER, Len: sizeofSockFprog}}, + ssoAttachFilter: {Option: socket.Option{Level: unix.SOL_SOCKET, Name: unix.SO_ATTACH_FILTER, Len: unix.SizeofSockFprog}}, } ) diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_ssmreq.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_ssmreq.go index add8ccc0b1..9b52e978cb 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sys_ssmreq.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_ssmreq.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin freebsd linux solaris +// +build aix darwin freebsd linux solaris package ipv6 @@ -13,7 +13,7 @@ import ( "golang.org/x/net/internal/socket" ) -var freebsd32o64 bool +var compatFreeBSD32 bool // 386 emulation on amd64 func (so *sockOpt) setGroupReq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { var gr groupReq @@ -22,7 +22,7 @@ func (so *sockOpt) setGroupReq(c *socket.Conn, ifi *net.Interface, grp net.IP) e } gr.setGroup(grp) var b []byte - if freebsd32o64 { + if compatFreeBSD32 { var d [sizeofGroupReq + 4]byte s := (*[sizeofGroupReq]byte)(unsafe.Pointer(&gr)) copy(d[:4], s[:4]) @@ -41,7 +41,7 @@ func (so *sockOpt) setGroupSourceReq(c *socket.Conn, ifi *net.Interface, grp, sr } gsr.setSourceGroup(grp, src) var b []byte - if freebsd32o64 { + if compatFreeBSD32 { var d [sizeofGroupSourceReq + 4]byte s := (*[sizeofGroupSourceReq]byte)(unsafe.Pointer(&gsr)) copy(d[:4], s[:4]) diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_ssmreq_stub.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_ssmreq_stub.go index 581ee490ff..d5bc1108c5 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sys_ssmreq_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_ssmreq_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!freebsd,!linux,!solaris +// +build !aix,!darwin,!freebsd,!linux,!solaris package ipv6 @@ -13,9 +13,9 @@ import ( ) func (so *sockOpt) setGroupReq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport + return errNotImplemented } func (so *sockOpt) setGroupSourceReq(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - return errOpNoSupport + return errNotImplemented } diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/sys_stub.go b/libnetwork/vendor/golang.org/x/net/ipv6/sys_stub.go index b845388ea4..4f252d09f6 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/sys_stub.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/sys_stub.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_aix_ppc64.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_aix_ppc64.go new file mode 100644 index 0000000000..bf44e338bd --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_aix_ppc64.go @@ -0,0 +1,103 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_aix.go + +// Added for go1.11 compatibility +// +build aix + +package ipv6 + +const ( + sysIPV6_UNICAST_HOPS = 0x4 + sysIPV6_MULTICAST_IF = 0x9 + sysIPV6_MULTICAST_HOPS = 0xa + sysIPV6_MULTICAST_LOOP = 0xb + sysIPV6_JOIN_GROUP = 0xc + sysIPV6_LEAVE_GROUP = 0xd + sysICMP6_FILTER = 0x26 + + sysIPV6_CHECKSUM = 0x27 + sysIPV6_V6ONLY = 0x25 + + sysIPV6_RTHDRDSTOPTS = 0x37 + + sysIPV6_RECVPKTINFO = 0x23 + sysIPV6_RECVHOPLIMIT = 0x29 + sysIPV6_RECVRTHDR = 0x33 + sysIPV6_RECVHOPOPTS = 0x35 + sysIPV6_RECVDSTOPTS = 0x38 + + sysIPV6_USE_MIN_MTU = 0x2c + sysIPV6_RECVPATHMTU = 0x2f + sysIPV6_PATHMTU = 0x2e + + sysIPV6_PKTINFO = 0x21 + sysIPV6_HOPLIMIT = 0x28 + sysIPV6_NEXTHOP = 0x30 + sysIPV6_HOPOPTS = 0x34 + sysIPV6_DSTOPTS = 0x36 + sysIPV6_RTHDR = 0x32 + + sysIPV6_RECVTCLASS = 0x2a + + sysIPV6_TCLASS = 0x2b + sysIPV6_DONTFRAG = 0x2d + + sizeofSockaddrStorage = 0x508 + sizeofSockaddrInet6 = 0x1c + sizeofInet6Pktinfo = 0x14 + sizeofIPv6Mtuinfo = 0x20 + + sizeofIPv6Mreq = 0x14 + sizeofGroupReq = 0x510 + sizeofGroupSourceReq = 0xa18 + + sizeofICMPv6Filter = 0x20 +) + +type sockaddrStorage struct { + X__ss_len uint8 + Family uint8 + X__ss_pad1 [6]uint8 + X__ss_align int64 + X__ss_pad2 [1265]uint8 + Pad_cgo_0 [7]byte +} + +type sockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex int32 +} + +type ipv6Mtuinfo struct { + Addr sockaddrInet6 + Mtu uint32 +} + +type ipv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type icmpv6Filter struct { + Filt [8]uint32 +} + +type groupReq struct { + Interface uint32 + Group sockaddrStorage +} + +type groupSourceReq struct { + Interface uint32 + Group sockaddrStorage + Source sockaddrStorage +} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_darwin.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_darwin.go index 6aab1dfab7..555744afd7 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_darwin.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_darwin.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_dragonfly.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_dragonfly.go index d2de804d88..cf3cc1024a 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_dragonfly.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_dragonfly.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_dragonfly.go package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_386.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_386.go index 919e572d4a..73f31b260e 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_386.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_amd64.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_amd64.go index cb8141f9c6..490ce7cf10 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm.go index cb8141f9c6..490ce7cf10 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm64.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm64.go new file mode 100644 index 0000000000..47e99ac9d3 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm64.go @@ -0,0 +1,122 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_freebsd.go + +package ipv6 + +const ( + sysIPV6_UNICAST_HOPS = 0x4 + sysIPV6_MULTICAST_IF = 0x9 + sysIPV6_MULTICAST_HOPS = 0xa + sysIPV6_MULTICAST_LOOP = 0xb + sysIPV6_JOIN_GROUP = 0xc + sysIPV6_LEAVE_GROUP = 0xd + sysIPV6_PORTRANGE = 0xe + sysICMP6_FILTER = 0x12 + + sysIPV6_CHECKSUM = 0x1a + sysIPV6_V6ONLY = 0x1b + + sysIPV6_IPSEC_POLICY = 0x1c + + sysIPV6_RTHDRDSTOPTS = 0x23 + + sysIPV6_RECVPKTINFO = 0x24 + sysIPV6_RECVHOPLIMIT = 0x25 + sysIPV6_RECVRTHDR = 0x26 + sysIPV6_RECVHOPOPTS = 0x27 + sysIPV6_RECVDSTOPTS = 0x28 + + sysIPV6_USE_MIN_MTU = 0x2a + sysIPV6_RECVPATHMTU = 0x2b + + sysIPV6_PATHMTU = 0x2c + + sysIPV6_PKTINFO = 0x2e + sysIPV6_HOPLIMIT = 0x2f + sysIPV6_NEXTHOP = 0x30 + sysIPV6_HOPOPTS = 0x31 + sysIPV6_DSTOPTS = 0x32 + sysIPV6_RTHDR = 0x33 + + sysIPV6_RECVTCLASS = 0x39 + + sysIPV6_AUTOFLOWLABEL = 0x3b + + sysIPV6_TCLASS = 0x3d + sysIPV6_DONTFRAG = 0x3e + + sysIPV6_PREFER_TEMPADDR = 0x3f + + sysIPV6_BINDANY = 0x40 + + sysIPV6_MSFILTER = 0x4a + + sysMCAST_JOIN_GROUP = 0x50 + sysMCAST_LEAVE_GROUP = 0x51 + sysMCAST_JOIN_SOURCE_GROUP = 0x52 + sysMCAST_LEAVE_SOURCE_GROUP = 0x53 + sysMCAST_BLOCK_SOURCE = 0x54 + sysMCAST_UNBLOCK_SOURCE = 0x55 + + sysIPV6_PORTRANGE_DEFAULT = 0x0 + sysIPV6_PORTRANGE_HIGH = 0x1 + sysIPV6_PORTRANGE_LOW = 0x2 + + sizeofSockaddrStorage = 0x80 + sizeofSockaddrInet6 = 0x1c + sizeofInet6Pktinfo = 0x14 + sizeofIPv6Mtuinfo = 0x20 + + sizeofIPv6Mreq = 0x14 + sizeofGroupReq = 0x88 + sizeofGroupSourceReq = 0x108 + + sizeofICMPv6Filter = 0x20 +) + +type sockaddrStorage struct { + Len uint8 + Family uint8 + X__ss_pad1 [6]uint8 + X__ss_align int64 + X__ss_pad2 [112]uint8 +} + +type sockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type ipv6Mtuinfo struct { + Addr sockaddrInet6 + Mtu uint32 +} + +type ipv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type groupReq struct { + Interface uint32 + Group sockaddrStorage +} + +type groupSourceReq struct { + Interface uint32 + Group sockaddrStorage + Source sockaddrStorage +} + +type icmpv6Filter struct { + Filt [8]uint32 +} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_386.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_386.go index 73aa8c6dfc..bde4a8f8f5 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_386.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x104 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x8 ) type kernelSockaddrStorage struct { @@ -155,16 +150,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_amd64.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_amd64.go index b64f0157d7..992ac9ec5f 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_amd64.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -157,16 +152,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_arm.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_arm.go index 73aa8c6dfc..bde4a8f8f5 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_arm.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x104 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x8 ) type kernelSockaddrStorage struct { @@ -155,16 +150,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_arm64.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_arm64.go index b64f0157d7..992ac9ec5f 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_arm64.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_arm64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -157,16 +152,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips.go index 73aa8c6dfc..bde4a8f8f5 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x104 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x8 ) type kernelSockaddrStorage struct { @@ -155,16 +150,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips64.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips64.go index b64f0157d7..992ac9ec5f 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips64.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -157,16 +152,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips64le.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips64le.go index b64f0157d7..992ac9ec5f 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips64le.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mips64le.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -157,16 +152,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mipsle.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mipsle.go index 73aa8c6dfc..bde4a8f8f5 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mipsle.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_mipsle.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x104 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x8 ) type kernelSockaddrStorage struct { @@ -155,16 +150,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc.go index c9bf6a87ef..66fd236121 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x104 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x8 ) type kernelSockaddrStorage struct { @@ -155,16 +150,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64.go index b64f0157d7..992ac9ec5f 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -157,16 +152,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64le.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64le.go index b64f0157d7..992ac9ec5f 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64le.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64le.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -157,16 +152,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_riscv64.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_riscv64.go new file mode 100644 index 0000000000..6083ddcedc --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_riscv64.go @@ -0,0 +1,156 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_linux.go + +// +build riscv64 + +package ipv6 + +const ( + sysIPV6_ADDRFORM = 0x1 + sysIPV6_2292PKTINFO = 0x2 + sysIPV6_2292HOPOPTS = 0x3 + sysIPV6_2292DSTOPTS = 0x4 + sysIPV6_2292RTHDR = 0x5 + sysIPV6_2292PKTOPTIONS = 0x6 + sysIPV6_CHECKSUM = 0x7 + sysIPV6_2292HOPLIMIT = 0x8 + sysIPV6_NEXTHOP = 0x9 + sysIPV6_FLOWINFO = 0xb + + sysIPV6_UNICAST_HOPS = 0x10 + sysIPV6_MULTICAST_IF = 0x11 + sysIPV6_MULTICAST_HOPS = 0x12 + sysIPV6_MULTICAST_LOOP = 0x13 + sysIPV6_ADD_MEMBERSHIP = 0x14 + sysIPV6_DROP_MEMBERSHIP = 0x15 + sysMCAST_JOIN_GROUP = 0x2a + sysMCAST_LEAVE_GROUP = 0x2d + sysMCAST_JOIN_SOURCE_GROUP = 0x2e + sysMCAST_LEAVE_SOURCE_GROUP = 0x2f + sysMCAST_BLOCK_SOURCE = 0x2b + sysMCAST_UNBLOCK_SOURCE = 0x2c + sysMCAST_MSFILTER = 0x30 + sysIPV6_ROUTER_ALERT = 0x16 + sysIPV6_MTU_DISCOVER = 0x17 + sysIPV6_MTU = 0x18 + sysIPV6_RECVERR = 0x19 + sysIPV6_V6ONLY = 0x1a + sysIPV6_JOIN_ANYCAST = 0x1b + sysIPV6_LEAVE_ANYCAST = 0x1c + + sysIPV6_FLOWLABEL_MGR = 0x20 + sysIPV6_FLOWINFO_SEND = 0x21 + + sysIPV6_IPSEC_POLICY = 0x22 + sysIPV6_XFRM_POLICY = 0x23 + + sysIPV6_RECVPKTINFO = 0x31 + sysIPV6_PKTINFO = 0x32 + sysIPV6_RECVHOPLIMIT = 0x33 + sysIPV6_HOPLIMIT = 0x34 + sysIPV6_RECVHOPOPTS = 0x35 + sysIPV6_HOPOPTS = 0x36 + sysIPV6_RTHDRDSTOPTS = 0x37 + sysIPV6_RECVRTHDR = 0x38 + sysIPV6_RTHDR = 0x39 + sysIPV6_RECVDSTOPTS = 0x3a + sysIPV6_DSTOPTS = 0x3b + sysIPV6_RECVPATHMTU = 0x3c + sysIPV6_PATHMTU = 0x3d + sysIPV6_DONTFRAG = 0x3e + + sysIPV6_RECVTCLASS = 0x42 + sysIPV6_TCLASS = 0x43 + + sysIPV6_ADDR_PREFERENCES = 0x48 + + sysIPV6_PREFER_SRC_TMP = 0x1 + sysIPV6_PREFER_SRC_PUBLIC = 0x2 + sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 + sysIPV6_PREFER_SRC_COA = 0x4 + sysIPV6_PREFER_SRC_HOME = 0x400 + sysIPV6_PREFER_SRC_CGA = 0x8 + sysIPV6_PREFER_SRC_NONCGA = 0x800 + + sysIPV6_MINHOPCOUNT = 0x49 + + sysIPV6_ORIGDSTADDR = 0x4a + sysIPV6_RECVORIGDSTADDR = 0x4a + sysIPV6_TRANSPARENT = 0x4b + sysIPV6_UNICAST_IF = 0x4c + + sysICMPV6_FILTER = 0x1 + + sysICMPV6_FILTER_BLOCK = 0x1 + sysICMPV6_FILTER_PASS = 0x2 + sysICMPV6_FILTER_BLOCKOTHERS = 0x3 + sysICMPV6_FILTER_PASSONLY = 0x4 + + sizeofKernelSockaddrStorage = 0x80 + sizeofSockaddrInet6 = 0x1c + sizeofInet6Pktinfo = 0x14 + sizeofIPv6Mtuinfo = 0x20 + sizeofIPv6FlowlabelReq = 0x20 + + sizeofIPv6Mreq = 0x14 + sizeofGroupReq = 0x88 + sizeofGroupSourceReq = 0x108 + + sizeofICMPv6Filter = 0x20 +) + +type kernelSockaddrStorage struct { + Family uint16 + X__data [126]int8 +} + +type sockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex int32 +} + +type ipv6Mtuinfo struct { + Addr sockaddrInet6 + Mtu uint32 +} + +type ipv6FlowlabelReq struct { + Dst [16]byte /* in6_addr */ + Label uint32 + Action uint8 + Share uint8 + Flags uint16 + Expires uint16 + Linger uint16 + X__flr_pad uint32 +} + +type ipv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Ifindex int32 +} + +type groupReq struct { + Interface uint32 + Pad_cgo_0 [4]byte + Group kernelSockaddrStorage +} + +type groupSourceReq struct { + Interface uint32 + Pad_cgo_0 [4]byte + Group kernelSockaddrStorage + Source kernelSockaddrStorage +} + +type icmpv6Filter struct { + Data [8]uint32 +} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_s390x.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_s390x.go index b64f0157d7..992ac9ec5f 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_s390x.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_linux_s390x.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv6 @@ -84,9 +84,6 @@ const ( sysICMPV6_FILTER_BLOCKOTHERS = 0x3 sysICMPV6_FILTER_PASSONLY = 0x4 - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - sizeofKernelSockaddrStorage = 0x80 sizeofSockaddrInet6 = 0x1c sizeofInet6Pktinfo = 0x14 @@ -98,8 +95,6 @@ const ( sizeofGroupSourceReq = 0x108 sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 ) type kernelSockaddrStorage struct { @@ -157,16 +152,3 @@ type groupSourceReq struct { type icmpv6Filter struct { Data [8]uint32 } - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_netbsd.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_netbsd.go index bcada13b7a..e39571e072 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_netbsd.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_netbsd.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_netbsd.go package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_openbsd.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_openbsd.go index 86cf3c6379..cc1899a630 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_openbsd.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_openbsd.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_openbsd.go package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_solaris.go b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_solaris.go index cf1837dd2a..690eef9341 100644 --- a/libnetwork/vendor/golang.org/x/net/ipv6/zsys_solaris.go +++ b/libnetwork/vendor/golang.org/x/net/ipv6/zsys_solaris.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_solaris.go package ipv6 diff --git a/libnetwork/vendor/golang.org/x/net/proxy/dial.go b/libnetwork/vendor/golang.org/x/net/proxy/dial.go new file mode 100644 index 0000000000..811c2e4e96 --- /dev/null +++ b/libnetwork/vendor/golang.org/x/net/proxy/dial.go @@ -0,0 +1,54 @@ +// Copyright 2019 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 proxy + +import ( + "context" + "net" +) + +// A ContextDialer dials using a context. +type ContextDialer interface { + DialContext(ctx context.Context, network, address string) (net.Conn, error) +} + +// Dial works like DialContext on net.Dialer but using a dialer returned by FromEnvironment. +// +// The passed ctx is only used for returning the Conn, not the lifetime of the Conn. +// +// Custom dialers (registered via RegisterDialerType) that do not implement ContextDialer +// can leak a goroutine for as long as it takes the underlying Dialer implementation to timeout. +// +// A Conn returned from a successful Dial after the context has been cancelled will be immediately closed. +func Dial(ctx context.Context, network, address string) (net.Conn, error) { + d := FromEnvironment() + if xd, ok := d.(ContextDialer); ok { + return xd.DialContext(ctx, network, address) + } + return dialContext(ctx, d, network, address) +} + +// WARNING: this can leak a goroutine for as long as the underlying Dialer implementation takes to timeout +// A Conn returned from a successful Dial after the context has been cancelled will be immediately closed. +func dialContext(ctx context.Context, d Dialer, network, address string) (net.Conn, error) { + var ( + conn net.Conn + done = make(chan struct{}, 1) + err error + ) + go func() { + conn, err = d.Dial(network, address) + close(done) + if conn != nil && ctx.Err() != nil { + conn.Close() + } + }() + select { + case <-ctx.Done(): + err = ctx.Err() + case <-done: + } + return conn, err +} diff --git a/libnetwork/vendor/golang.org/x/net/proxy/direct.go b/libnetwork/vendor/golang.org/x/net/proxy/direct.go index 4c5ad88b1e..3d66bdef9d 100644 --- a/libnetwork/vendor/golang.org/x/net/proxy/direct.go +++ b/libnetwork/vendor/golang.org/x/net/proxy/direct.go @@ -5,14 +5,27 @@ package proxy import ( + "context" "net" ) type direct struct{} -// Direct is a direct proxy: one that makes network connections directly. +// Direct implements Dialer by making network connections directly using net.Dial or net.DialContext. var Direct = direct{} +var ( + _ Dialer = Direct + _ ContextDialer = Direct +) + +// Dial directly invokes net.Dial with the supplied parameters. func (direct) Dial(network, addr string) (net.Conn, error) { return net.Dial(network, addr) } + +// DialContext instantiates a net.Dialer and invokes its DialContext receiver with the supplied parameters. +func (direct) DialContext(ctx context.Context, network, addr string) (net.Conn, error) { + var d net.Dialer + return d.DialContext(ctx, network, addr) +} diff --git a/libnetwork/vendor/golang.org/x/net/proxy/per_host.go b/libnetwork/vendor/golang.org/x/net/proxy/per_host.go index 0689bb6a70..573fe79e86 100644 --- a/libnetwork/vendor/golang.org/x/net/proxy/per_host.go +++ b/libnetwork/vendor/golang.org/x/net/proxy/per_host.go @@ -5,6 +5,7 @@ package proxy import ( + "context" "net" "strings" ) @@ -41,6 +42,20 @@ func (p *PerHost) Dial(network, addr string) (c net.Conn, err error) { return p.dialerForRequest(host).Dial(network, addr) } +// DialContext connects to the address addr on the given network through either +// defaultDialer or bypass. +func (p *PerHost) DialContext(ctx context.Context, network, addr string) (c net.Conn, err error) { + host, _, err := net.SplitHostPort(addr) + if err != nil { + return nil, err + } + d := p.dialerForRequest(host) + if x, ok := d.(ContextDialer); ok { + return x.DialContext(ctx, network, addr) + } + return dialContext(ctx, d, network, addr) +} + func (p *PerHost) dialerForRequest(host string) Dialer { if ip := net.ParseIP(host); ip != nil { for _, net := range p.bypassNetworks { diff --git a/libnetwork/vendor/golang.org/x/net/proxy/proxy.go b/libnetwork/vendor/golang.org/x/net/proxy/proxy.go index 553ead7cf0..9ff4b9a776 100644 --- a/libnetwork/vendor/golang.org/x/net/proxy/proxy.go +++ b/libnetwork/vendor/golang.org/x/net/proxy/proxy.go @@ -15,6 +15,7 @@ import ( ) // A Dialer is a means to establish a connection. +// Custom dialers should also implement ContextDialer. type Dialer interface { // Dial connects to the given address via the proxy. Dial(network, addr string) (c net.Conn, err error) @@ -25,21 +26,30 @@ type Auth struct { User, Password string } -// FromEnvironment returns the dialer specified by the proxy related variables in -// the environment. +// FromEnvironment returns the dialer specified by the proxy-related +// variables in the environment and makes underlying connections +// directly. func FromEnvironment() Dialer { + return FromEnvironmentUsing(Direct) +} + +// FromEnvironmentUsing returns the dialer specify by the proxy-related +// variables in the environment and makes underlying connections +// using the provided forwarding Dialer (for instance, a *net.Dialer +// with desired configuration). +func FromEnvironmentUsing(forward Dialer) Dialer { allProxy := allProxyEnv.Get() if len(allProxy) == 0 { - return Direct + return forward } proxyURL, err := url.Parse(allProxy) if err != nil { - return Direct + return forward } - proxy, err := FromURL(proxyURL, Direct) + proxy, err := FromURL(proxyURL, forward) if err != nil { - return Direct + return forward } noProxy := noProxyEnv.Get() @@ -47,7 +57,7 @@ func FromEnvironment() Dialer { return proxy } - perHost := NewPerHost(proxy, Direct) + perHost := NewPerHost(proxy, forward) perHost.AddFromString(noProxy) return perHost } @@ -79,8 +89,13 @@ func FromURL(u *url.URL, forward Dialer) (Dialer, error) { } switch u.Scheme { - case "socks5": - return SOCKS5("tcp", u.Host, auth, forward) + case "socks5", "socks5h": + addr := u.Hostname() + port := u.Port() + if port == "" { + port = "1080" + } + return SOCKS5("tcp", net.JoinHostPort(addr, port), auth, forward) } // If the scheme doesn't match any of the built-in schemes, see if it diff --git a/libnetwork/vendor/golang.org/x/net/proxy/socks5.go b/libnetwork/vendor/golang.org/x/net/proxy/socks5.go index 56345ec8b6..c91651f96d 100644 --- a/libnetwork/vendor/golang.org/x/net/proxy/socks5.go +++ b/libnetwork/vendor/golang.org/x/net/proxy/socks5.go @@ -17,8 +17,14 @@ import ( func SOCKS5(network, address string, auth *Auth, forward Dialer) (Dialer, error) { d := socks.NewDialer(network, address) if forward != nil { - d.ProxyDial = func(_ context.Context, network string, address string) (net.Conn, error) { - return forward.Dial(network, address) + if f, ok := forward.(ContextDialer); ok { + d.ProxyDial = func(ctx context.Context, network string, address string) (net.Conn, error) { + return f.DialContext(ctx, network, address) + } + } else { + d.ProxyDial = func(ctx context.Context, network string, address string) (net.Conn, error) { + return dialContext(ctx, forward, network, address) + } } } if auth != nil {