Update sctp package This commit updates the vendored ishidawataru/sctp and adapts...
authorSascha Grunert <sgrunert@suse.com>
Thu, 2 May 2019 11:23:31 +0000 (13:23 +0200)
committerDmitry Smirnov <onlyjob@debian.org>
Tue, 8 Oct 2019 03:37:25 +0000 (04:37 +0100)
Gbp-Pq: Name libnetwork-update-sctp.patch

libnetwork/cmd/proxy/main.go
libnetwork/cmd/proxy/network_proxy_test.go
libnetwork/portmapper/mapper.go
libnetwork/portmapper/proxy.go
libnetwork/types/types.go

index 3d51de6fb79398dee5f1d908e6d4051fa8672639..c2832b3fe3e6627aaaf143c91018e475c9dc295f 100644 (file)
@@ -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)
        }
index 2d226504b61c6f4794effc1757f0f3a86db1c840..f0da09f3ca1487e3c0ef5590c1933f107dedfa46 100644 (file)
@@ -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)
index be4157b0d543e81b6c84114bce4d2b6e95b78a6d..47c99a9e347fe012374817c355353862ed0b93d1 100644 (file)
@@ -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
 }
index 1183c33a7eb0e97233e56a189db513c7de096f47..12e4122c05426bb26123a46d499f26cba6732a52 100644 (file)
@@ -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)
index b102ba4c390be6194ef6a221288543463886bb2d..db1960c104e835046d4e12d2e9ae4697000e5d02 100644 (file)
@@ -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())
        }