Merge pull request #27860 from vdemeester/update-go-connections-vendor

Update go-connections vendoring
This commit is contained in:
Brian Goff 2016-10-28 12:01:59 -07:00 коммит произвёл GitHub
Родитель 7c809039f5 609c183ae7
Коммит f391f9c3b9
4 изменённых файлов: 29 добавлений и 25 удалений

Просмотреть файл

@ -64,7 +64,7 @@ clone git github.com/vdemeester/shakers 24d7f1d6a71aa5d9cbe7390e4afb66b7eef9e1b3
clone git golang.org/x/net 2beffdc2e92c8a3027590f898fe88f69af48a3f8 https://github.com/tonistiigi/net.git clone git golang.org/x/net 2beffdc2e92c8a3027590f898fe88f69af48a3f8 https://github.com/tonistiigi/net.git
clone git golang.org/x/sys eb2c74142fd19a79b3f237334c7384d5167b1b46 https://github.com/golang/sys.git clone git golang.org/x/sys eb2c74142fd19a79b3f237334c7384d5167b1b46 https://github.com/golang/sys.git
clone git github.com/docker/go-units 8a7beacffa3009a9ac66bad506b18ffdd110cf97 clone git github.com/docker/go-units 8a7beacffa3009a9ac66bad506b18ffdd110cf97
clone git github.com/docker/go-connections 988efe982fdecb46f01d53465878ff1f2ff411ce clone git github.com/docker/go-connections 1494b6df4050e60923d68cd8cc6a19e7af9f1c01
clone git github.com/RackSec/srslog 365bf33cd9acc21ae1c355209865f17228ca534e clone git github.com/RackSec/srslog 365bf33cd9acc21ae1c355209865f17228ca534e
clone git github.com/imdario/mergo 0.2.1 clone git github.com/imdario/mergo 0.2.1

Просмотреть файл

@ -155,33 +155,36 @@ type PortMapping struct {
Binding PortBinding Binding PortBinding
} }
func splitParts(rawport string) (string, string, string) {
parts := strings.Split(rawport, ":")
n := len(parts)
containerport := parts[n-1]
switch n {
case 1:
return "", "", containerport
case 2:
return "", parts[0], containerport
case 3:
return parts[0], parts[1], containerport
default:
return strings.Join(parts[:n-2], ":"), parts[n-2], containerport
}
}
// ParsePortSpec parses a port specification string into a slice of PortMappings // ParsePortSpec parses a port specification string into a slice of PortMappings
func ParsePortSpec(rawPort string) ([]PortMapping, error) { func ParsePortSpec(rawPort string) ([]PortMapping, error) {
proto := "tcp" var proto string
rawIP, hostPort, containerPort := splitParts(rawPort)
proto, containerPort = SplitProtoPort(containerPort)
if i := strings.LastIndex(rawPort, "/"); i != -1 { // Strip [] from IPV6 addresses
proto = rawPort[i+1:] ip, _, err := net.SplitHostPort(rawIP + ":")
rawPort = rawPort[:i]
}
if !strings.Contains(rawPort, ":") {
rawPort = fmt.Sprintf("::%s", rawPort)
} else if len(strings.Split(rawPort, ":")) == 2 {
rawPort = fmt.Sprintf(":%s", rawPort)
}
parts, err := PartParser(portSpecTemplate, rawPort)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("Invalid ip address %v: %s", rawIP, err)
} }
if ip != "" && net.ParseIP(ip) == nil {
var ( return nil, fmt.Errorf("Invalid ip address: %s", ip)
containerPort = parts["containerPort"]
rawIP = parts["ip"]
hostPort = parts["hostPort"]
)
if rawIP != "" && net.ParseIP(rawIP) == nil {
return nil, fmt.Errorf("Invalid ip address: %s", rawIP)
} }
if containerPort == "" { if containerPort == "" {
return nil, fmt.Errorf("No port specified: %s<empty>", rawPort) return nil, fmt.Errorf("No port specified: %s<empty>", rawPort)
@ -230,7 +233,7 @@ func ParsePortSpec(rawPort string) ([]PortMapping, error) {
} }
binding := PortBinding{ binding := PortBinding{
HostIP: rawIP, HostIP: ip,
HostPort: hostPort, HostPort: hostPort,
} }
ports = append(ports, PortMapping{Port: port, Binding: binding}) ports = append(ports, PortMapping{Port: port, Binding: binding})

Просмотреть файл

@ -8,6 +8,7 @@ import (
// PartParser parses and validates the specified string (data) using the specified template // PartParser parses and validates the specified string (data) using the specified template
// e.g. ip:public:private -> 192.168.0.1:80:8000 // e.g. ip:public:private -> 192.168.0.1:80:8000
// DEPRECATED: do not use, this function may be removed in a future version
func PartParser(template, data string) (map[string]string, error) { func PartParser(template, data string) (map[string]string, error) {
// ip:public:private // ip:public:private
var ( var (

Просмотреть файл

@ -7,7 +7,7 @@ import (
) )
// NewTCPSocket creates a TCP socket listener with the specified address and // NewTCPSocket creates a TCP socket listener with the specified address and
// and the specified tls configuration. If TLSConfig is set, will encapsulate the // the specified tls configuration. If TLSConfig is set, will encapsulate the
// TCP listener inside a TLS one. // TCP listener inside a TLS one.
func NewTCPSocket(addr string, tlsConfig *tls.Config) (net.Listener, error) { func NewTCPSocket(addr string, tlsConfig *tls.Config) (net.Listener, error) {
l, err := net.Listen("tcp", addr) l, err := net.Listen("tcp", addr)