summaryrefslogtreecommitdiff
path: root/registry/service.go
diff options
context:
space:
mode:
authorSebastiaan van Stijn <github@gone.nl>2020-10-28 12:30:48 +0100
committerSebastiaan van Stijn <github@gone.nl>2020-10-28 14:06:38 +0100
commit32eaf4690a42747dad9ab59d952c6bcece5dd9b4 (patch)
tree781e6a218b3f3285317c116b43c16abbd09ecaf5 /registry/service.go
parent7782d04141c2056ffad8ae286eba7e7994e42bc1 (diff)
downloaddocker-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.go24
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)
}