diff options
author | Sebastiaan van Stijn <github@gone.nl> | 2020-10-28 12:30:48 +0100 |
---|---|---|
committer | Sebastiaan van Stijn <github@gone.nl> | 2020-10-28 14:06:38 +0100 |
commit | 32eaf4690a42747dad9ab59d952c6bcece5dd9b4 (patch) | |
tree | 781e6a218b3f3285317c116b43c16abbd09ecaf5 /registry/service.go | |
parent | 7782d04141c2056ffad8ae286eba7e7994e42bc1 (diff) | |
download | docker-32eaf4690a42747dad9ab59d952c6bcece5dd9b4.tar.gz |
registry: DefaultService.Auth(): skip parsing default registry
There's no need to parse or validate the default registry, as it's
a constant value.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Diffstat (limited to 'registry/service.go')
-rw-r--r-- | registry/service.go | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/registry/service.go b/registry/service.go index 8d8dbd9c17..1ad30b11ca 100644 --- a/registry/service.go +++ b/registry/service.go @@ -108,22 +108,24 @@ func (s *DefaultService) LoadInsecureRegistries(registries []string) error { // It can be used to verify the validity of a client's credentials. func (s *DefaultService) Auth(ctx context.Context, authConfig *types.AuthConfig, userAgent string) (status, token string, err error) { // TODO Use ctx when searching for repositories - serverAddress := authConfig.ServerAddress - if serverAddress == "" { - serverAddress = IndexServer - } - if !strings.HasPrefix(serverAddress, "https://") && !strings.HasPrefix(serverAddress, "http://") { - serverAddress = "https://" + serverAddress - } - u, err := url.Parse(serverAddress) - if err != nil { - return "", "", errdefs.InvalidParameter(errors.Errorf("unable to parse server address: %v", err)) + var registryHostName = IndexHostname + + if authConfig.ServerAddress != "" { + serverAddress := authConfig.ServerAddress + if !strings.HasPrefix(serverAddress, "https://") && !strings.HasPrefix(serverAddress, "http://") { + serverAddress = "https://" + serverAddress + } + u, err := url.Parse(serverAddress) + if err != nil { + return "", "", errdefs.InvalidParameter(errors.Errorf("unable to parse server address: %v", err)) + } + registryHostName = u.Host } // Lookup endpoints for authentication using "LookupPushEndpoints", which // excludes mirrors to prevent sending credentials of the upstream registry // to a mirror. - endpoints, err := s.LookupPushEndpoints(u.Host) + endpoints, err := s.LookupPushEndpoints(registryHostName) if err != nil { return "", "", errdefs.InvalidParameter(err) } |