summaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/server/router/image/backend.go2
-rw-r--r--api/server/router/image/image_routes.go17
2 files changed, 11 insertions, 8 deletions
diff --git a/api/server/router/image/backend.go b/api/server/router/image/backend.go
index 6dcee6f100..302b48d68e 100644
--- a/api/server/router/image/backend.go
+++ b/api/server/router/image/backend.go
@@ -42,5 +42,5 @@ type registryBackend interface {
}
type Searcher interface {
- Search(ctx context.Context, searchFilters filters.Args, term string, limit int, authConfig *registry.AuthConfig, metaHeaders map[string][]string) ([]registry.SearchResult, error)
+ Search(ctx context.Context, searchFilters filters.Args, term string, limit int, authConfig *registry.AuthConfig, headers map[string][]string) ([]registry.SearchResult, error)
}
diff --git a/api/server/router/image/image_routes.go b/api/server/router/image/image_routes.go
index 3140a663ab..d891b8158e 100644
--- a/api/server/router/image/image_routes.go
+++ b/api/server/router/image/image_routes.go
@@ -18,6 +18,7 @@ import (
"github.com/docker/docker/api/types/registry"
"github.com/docker/docker/api/types/versions"
"github.com/docker/docker/builder/remotecontext"
+ "github.com/docker/docker/dockerversion"
"github.com/docker/docker/errdefs"
"github.com/docker/docker/image"
"github.com/docker/docker/pkg/ioutils"
@@ -392,13 +393,6 @@ func (ir *imageRouter) getImagesSearch(ctx context.Context, w http.ResponseWrite
return err
}
- var headers = map[string][]string{}
- for k, v := range r.Header {
- if strings.HasPrefix(k, "X-Meta-") {
- headers[k] = v
- }
- }
-
var limit int
if r.Form.Get("limit") != "" {
var err error
@@ -415,6 +409,15 @@ func (ir *imageRouter) getImagesSearch(ctx context.Context, w http.ResponseWrite
// For a search it is not an error if no auth was given. Ignore invalid
// AuthConfig to increase compatibility with the existing API.
authConfig, _ := registry.DecodeAuthConfig(r.Header.Get(registry.AuthHeader))
+
+ var headers = http.Header{}
+ for k, v := range r.Header {
+ k = http.CanonicalHeaderKey(k)
+ if strings.HasPrefix(k, "X-Meta-") {
+ headers[k] = v
+ }
+ }
+ headers.Set("User-Agent", dockerversion.DockerUserAgent(ctx))
res, err := ir.searcher.Search(ctx, searchFilters, r.Form.Get("term"), limit, authConfig, headers)
if err != nil {
return err