diff --git a/vendor.conf b/vendor.conf index abec83309d2a..66153774a704 100755 --- a/vendor.conf +++ b/vendor.conf @@ -13,7 +13,7 @@ github.com/davecgh/go-spew 346938d642f2ec3594ed81d87446 github.com/dgrijalva/jwt-go a2c85815a77d0f951e33ba4db5ae93629a1530af github.com/docker/distribution 83389a148052d74ac602f5f1d62f86ff2f3c4aa5 github.com/docker/docker 200b524eff60a9c95a22bc2518042ac2ff617d07 https://github.com/docker/engine # 18.09 branch -github.com/docker/docker-credential-helpers 5241b46610f2491efdf9d1c85f1ddf5b02f6d962 +github.com/docker/docker-credential-helpers 54f0238b6bf101fc3ad3b34114cb5520beb562f5 # v0.6.3 github.com/docker/go d30aec9fd63c35133f8f79c3412ad91a3b08be06 # Contains a customized version of canonical/json and is used by Notary. The package is periodically rebased on current Go versions. github.com/docker/go-connections 7395e3f8aa162843a74ed6d48e79627d9792ac55 # v0.4.0 github.com/docker/go-events 9461782956ad83b30282bf90e31fa6a70c255ba9 diff --git a/vendor/github.com/docker/docker-credential-helpers/README.md b/vendor/github.com/docker/docker-credential-helpers/README.md index f9cbc3fb5f14..c469c944bf4b 100644 --- a/vendor/github.com/docker/docker-credential-helpers/README.md +++ b/vendor/github.com/docker/docker-credential-helpers/README.md @@ -16,7 +16,7 @@ The programs in this repository are written with the Go programming language. Th $ go get github.com/docker/docker-credential-helpers ``` -2 - Use `make` to build the program you want. That will leave any executable in the `bin` directory inside the repository. +2 - Use `make` to build the program you want. That will leave an executable in the `bin` directory inside the repository. ``` $ cd $GOPATH/docker/docker-credentials-helpers diff --git a/vendor/github.com/docker/docker-credential-helpers/credentials/version.go b/vendor/github.com/docker/docker-credential-helpers/credentials/version.go index 033a5fee5593..c2cc3e2e0231 100644 --- a/vendor/github.com/docker/docker-credential-helpers/credentials/version.go +++ b/vendor/github.com/docker/docker-credential-helpers/credentials/version.go @@ -1,4 +1,4 @@ package credentials // Version holds a string describing the current version -const Version = "0.6.0" +const Version = "0.6.3" diff --git a/vendor/github.com/docker/docker-credential-helpers/osxkeychain/osxkeychain_darwin.c b/vendor/github.com/docker/docker-credential-helpers/osxkeychain/osxkeychain_darwin.c index f84d61ee5dc9..845012bd91d8 100644 --- a/vendor/github.com/docker/docker-credential-helpers/osxkeychain/osxkeychain_darwin.c +++ b/vendor/github.com/docker/docker-credential-helpers/osxkeychain/osxkeychain_darwin.c @@ -224,5 +224,4 @@ void freeListData(char *** data, unsigned int length) { for(int i=0; i @@ -10,12 +10,11 @@ package osxkeychain import "C" import ( "errors" - "net/url" "strconv" - "strings" "unsafe" "github.com/docker/docker-credential-helpers/credentials" + "github.com/docker/docker-credential-helpers/registryurl" ) // errCredentialsNotFound is the specific error message returned by OS X @@ -110,15 +109,18 @@ func (h Osxkeychain) List() (map[string]string, error) { defer C.free(unsafe.Pointer(acctsC)) var listLenC C.uint errMsg := C.keychain_list(credsLabelC, &pathsC, &acctsC, &listLenC) + defer C.freeListData(&pathsC, listLenC) + defer C.freeListData(&acctsC, listLenC) if errMsg != nil { defer C.free(unsafe.Pointer(errMsg)) goMsg := C.GoString(errMsg) + if goMsg == errCredentialsNotFound { + return make(map[string]string), nil + } + return nil, errors.New(goMsg) } - defer C.freeListData(&pathsC, listLenC) - defer C.freeListData(&acctsC, listLenC) - var listLen int listLen = int(listLenC) pathTmp := (*[1 << 30]*C.char)(unsafe.Pointer(pathsC))[:listLen:listLen] @@ -135,7 +137,7 @@ func (h Osxkeychain) List() (map[string]string, error) { } func splitServer(serverURL string) (*C.struct_Server, error) { - u, err := parseURL(serverURL) + u, err := registryurl.Parse(serverURL) if err != nil { return nil, err } @@ -145,7 +147,7 @@ func splitServer(serverURL string) (*C.struct_Server, error) { proto = C.kSecProtocolTypeHTTP } var port int - p := getPort(u) + p := registryurl.GetPort(u) if p != "" { port, err = strconv.Atoi(p) if err != nil { @@ -155,7 +157,7 @@ func splitServer(serverURL string) (*C.struct_Server, error) { return &C.struct_Server{ proto: C.SecProtocolType(proto), - host: C.CString(getHostname(u)), + host: C.CString(registryurl.GetHostname(u)), port: C.uint(port), path: C.CString(u.Path), }, nil @@ -165,32 +167,3 @@ func freeServer(s *C.struct_Server) { C.free(unsafe.Pointer(s.host)) C.free(unsafe.Pointer(s.path)) } - -// parseURL parses and validates a given serverURL to an url.URL, and -// returns an error if validation failed. Querystring parameters are -// omitted in the resulting URL, because they are not used in the helper. -// -// If serverURL does not have a valid scheme, `//` is used as scheme -// before parsing. This prevents the hostname being used as path, -// and the credentials being stored without host. -func parseURL(serverURL string) (*url.URL, error) { - // Check if serverURL has a scheme, otherwise add `//` as scheme. - if !strings.Contains(serverURL, "://") && !strings.HasPrefix(serverURL, "//") { - serverURL = "//" + serverURL - } - - u, err := url.Parse(serverURL) - if err != nil { - return nil, err - } - - if u.Scheme != "" && u.Scheme != "https" && u.Scheme != "http" { - return nil, errors.New("unsupported scheme: " + u.Scheme) - } - if getHostname(u) == "" { - return nil, errors.New("no hostname in URL") - } - - u.RawQuery = "" - return u, nil -} diff --git a/vendor/github.com/docker/docker-credential-helpers/osxkeychain/url_go18.go b/vendor/github.com/docker/docker-credential-helpers/osxkeychain/url_go18.go deleted file mode 100644 index 0b7297d2fc4f..000000000000 --- a/vendor/github.com/docker/docker-credential-helpers/osxkeychain/url_go18.go +++ /dev/null @@ -1,13 +0,0 @@ -//+build go1.8 - -package osxkeychain - -import "net/url" - -func getHostname(u *url.URL) string { - return u.Hostname() -} - -func getPort(u *url.URL) string { - return u.Port() -} diff --git a/vendor/github.com/docker/docker-credential-helpers/osxkeychain/url_non_go18.go b/vendor/github.com/docker/docker-credential-helpers/osxkeychain/url_non_go18.go deleted file mode 100644 index bdf9b7b00653..000000000000 --- a/vendor/github.com/docker/docker-credential-helpers/osxkeychain/url_non_go18.go +++ /dev/null @@ -1,41 +0,0 @@ -//+build !go1.8 - -package osxkeychain - -import ( - "net/url" - "strings" -) - -func getHostname(u *url.URL) string { - return stripPort(u.Host) -} - -func getPort(u *url.URL) string { - return portOnly(u.Host) -} - -func stripPort(hostport string) string { - colon := strings.IndexByte(hostport, ':') - if colon == -1 { - return hostport - } - if i := strings.IndexByte(hostport, ']'); i != -1 { - return strings.TrimPrefix(hostport[:i], "[") - } - return hostport[:colon] -} - -func portOnly(hostport string) string { - colon := strings.IndexByte(hostport, ':') - if colon == -1 { - return "" - } - if i := strings.Index(hostport, "]:"); i != -1 { - return hostport[i+len("]:"):] - } - if strings.Contains(hostport, "]") { - return "" - } - return hostport[colon+len(":"):] -} diff --git a/vendor/github.com/docker/docker-credential-helpers/secretservice/secretservice_linux.c b/vendor/github.com/docker/docker-credential-helpers/secretservice/secretservice_linux.c index 35dea92da5b3..73502a2ecefd 100644 --- a/vendor/github.com/docker/docker-credential-helpers/secretservice/secretservice_linux.c +++ b/vendor/github.com/docker/docker-credential-helpers/secretservice/secretservice_linux.c @@ -158,5 +158,4 @@ void freeListData(char *** data, unsigned int length) { for(i=0; i