From c63931981904d0ff420f7282ce8510aa7d352e7d Mon Sep 17 00:00:00 2001 From: Sascha Grunert Date: Thu, 2 May 2019 13:23:31 +0200 Subject: [PATCH] Update sctp package This commit updates the vendored ishidawataru/sctp and adapts its used types. Gbp-Pq: Name libnetwork-update-sctp.patch --- libnetwork/cmd/proxy/main.go | 4 ++-- libnetwork/cmd/proxy/network_proxy_test.go | 4 ++-- libnetwork/portmapper/mapper.go | 18 +++++++++--------- libnetwork/portmapper/proxy.go | 2 +- libnetwork/types/types.go | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/libnetwork/cmd/proxy/main.go b/libnetwork/cmd/proxy/main.go index 3d51de6f..c2832b3f 100644 --- a/libnetwork/cmd/proxy/main.go +++ b/libnetwork/cmd/proxy/main.go @@ -51,8 +51,8 @@ func parseHostContainerAddrs() (host net.Addr, container net.Addr) { host = &net.UDPAddr{IP: net.ParseIP(*hostIP), Port: *hostPort} container = &net.UDPAddr{IP: net.ParseIP(*containerIP), Port: *containerPort} case "sctp": - host = &sctp.SCTPAddr{IP: []net.IP{net.ParseIP(*hostIP)}, Port: *hostPort} - container = &sctp.SCTPAddr{IP: []net.IP{net.ParseIP(*containerIP)}, Port: *containerPort} + host = &sctp.SCTPAddr{IPAddrs: []net.IPAddr{{IP: net.ParseIP(*hostIP)}}, Port: *hostPort} + container = &sctp.SCTPAddr{IPAddrs: []net.IPAddr{{IP: net.ParseIP(*containerIP)}}, Port: *containerPort} default: log.Fatalf("unsupported protocol %s", *proto) } diff --git a/libnetwork/cmd/proxy/network_proxy_test.go b/libnetwork/cmd/proxy/network_proxy_test.go index 2d226504..f0da09f3 100644 --- a/libnetwork/cmd/proxy/network_proxy_test.go +++ b/libnetwork/cmd/proxy/network_proxy_test.go @@ -285,7 +285,7 @@ func TestSCTP4Proxy(t *testing.T) { backend := NewEchoServer(t, "sctp", "127.0.0.1:0", EchoServerOptions{}) defer backend.Close() backend.Run() - frontendAddr := &sctp.SCTPAddr{IP: []net.IP{net.IPv4(127, 0, 0, 1)}, Port: 0} + frontendAddr := &sctp.SCTPAddr{IPAddrs: []net.IPAddr{{IP: net.IPv4(127, 0, 0, 1)}}, Port: 0} proxy, err := NewProxy(frontendAddr, backend.LocalAddr()) if err != nil { t.Fatal(err) @@ -298,7 +298,7 @@ func TestSCTP6Proxy(t *testing.T) { backend := NewEchoServer(t, "sctp", "[::1]:0", EchoServerOptions{}) defer backend.Close() backend.Run() - frontendAddr := &sctp.SCTPAddr{IP: []net.IP{net.IPv6loopback}, Port: 0} + frontendAddr := &sctp.SCTPAddr{IPAddrs: []net.IPAddr{{IP: net.IPv6loopback}}, Port: 0} proxy, err := NewProxy(frontendAddr, backend.LocalAddr()) if err != nil { t.Fatal(err) diff --git a/libnetwork/portmapper/mapper.go b/libnetwork/portmapper/mapper.go index be4157b0..47c99a9e 100644 --- a/libnetwork/portmapper/mapper.go +++ b/libnetwork/portmapper/mapper.go @@ -115,16 +115,16 @@ func (pm *PortMapper) MapRange(container net.Addr, hostIP net.IP, hostPortStart, m = &mapping{ proto: proto, - host: &sctp.SCTPAddr{IP: []net.IP{hostIP}, Port: allocatedHostPort}, + host: &sctp.SCTPAddr{IPAddrs: []net.IPAddr{{IP: hostIP}}, Port: allocatedHostPort}, container: container, } if useProxy { sctpAddr := container.(*sctp.SCTPAddr) - if len(sctpAddr.IP) == 0 { + if len(sctpAddr.IPAddrs) == 0 { return nil, ErrSCTPAddrNoIP } - m.userlandProxy, err = newProxy(proto, hostIP, allocatedHostPort, sctpAddr.IP[0], sctpAddr.Port, pm.proxyPath) + m.userlandProxy, err = newProxy(proto, hostIP, allocatedHostPort, sctpAddr.IPAddrs[0].IP, sctpAddr.Port, pm.proxyPath) if err != nil { return nil, err } @@ -210,10 +210,10 @@ func (pm *PortMapper) Unmap(host net.Addr) error { case *net.UDPAddr: return pm.Allocator.ReleasePort(a.IP, "udp", a.Port) case *sctp.SCTPAddr: - if len(a.IP) == 0 { + if len(a.IPAddrs) == 0 { return ErrSCTPAddrNoIP } - return pm.Allocator.ReleasePort(a.IP[0], "sctp", a.Port) + return pm.Allocator.ReleasePort(a.IPAddrs[0].IP, "sctp", a.Port) } return ErrUnknownBackendAddressType } @@ -239,11 +239,11 @@ func getKey(a net.Addr) string { case *net.UDPAddr: return fmt.Sprintf("%s:%d/%s", t.IP.String(), t.Port, "udp") case *sctp.SCTPAddr: - if len(t.IP) == 0 { + if len(t.IPAddrs) == 0 { logrus.Error(ErrSCTPAddrNoIP) return "" } - return fmt.Sprintf("%s:%d/%s", t.IP[0].String(), t.Port, "sctp") + return fmt.Sprintf("%s:%d/%s", t.IPAddrs[0].IP.String(), t.Port, "sctp") } return "" } @@ -255,11 +255,11 @@ func getIPAndPort(a net.Addr) (net.IP, int) { case *net.UDPAddr: return t.IP, t.Port case *sctp.SCTPAddr: - if len(t.IP) == 0 { + if len(t.IPAddrs) == 0 { logrus.Error(ErrSCTPAddrNoIP) return nil, 0 } - return t.IP[0], t.Port + return t.IPAddrs[0].IP, t.Port } return nil, 0 } diff --git a/libnetwork/portmapper/proxy.go b/libnetwork/portmapper/proxy.go index 1183c33a..12e4122c 100644 --- a/libnetwork/portmapper/proxy.go +++ b/libnetwork/portmapper/proxy.go @@ -90,7 +90,7 @@ func newDummyProxy(proto string, hostIP net.IP, hostPort int) (userlandProxy, er addr := &net.UDPAddr{IP: hostIP, Port: hostPort} return &dummyProxy{addr: addr}, nil case "sctp": - addr := &sctp.SCTPAddr{IP: []net.IP{hostIP}, Port: hostPort} + addr := &sctp.SCTPAddr{IPAddrs: []net.IPAddr{{IP: hostIP}}, Port: hostPort} return &dummyProxy{addr: addr}, nil default: return nil, fmt.Errorf("Unknown addr type: %s", proto) diff --git a/libnetwork/types/types.go b/libnetwork/types/types.go index b102ba4c..db1960c1 100644 --- a/libnetwork/types/types.go +++ b/libnetwork/types/types.go @@ -99,7 +99,7 @@ func (p PortBinding) HostAddr() (net.Addr, error) { case TCP: return &net.TCPAddr{IP: p.HostIP, Port: int(p.HostPort)}, nil case SCTP: - return &sctp.SCTPAddr{IP: []net.IP{p.HostIP}, Port: int(p.HostPort)}, nil + return &sctp.SCTPAddr{IPAddrs: []net.IPAddr{{IP: p.HostIP}}, Port: int(p.HostPort)}, nil default: return nil, ErrInvalidProtocolBinding(p.Proto.String()) } @@ -113,7 +113,7 @@ func (p PortBinding) ContainerAddr() (net.Addr, error) { case TCP: return &net.TCPAddr{IP: p.IP, Port: int(p.Port)}, nil case SCTP: - return &sctp.SCTPAddr{IP: []net.IP{p.IP}, Port: int(p.Port)}, nil + return &sctp.SCTPAddr{IPAddrs: []net.IPAddr{{IP: p.IP}}, Port: int(p.Port)}, nil default: return nil, ErrInvalidProtocolBinding(p.Proto.String()) } -- 2.30.2