diff --git a/pkg/plugins/client.go b/pkg/plugins/client.go index 752fecd0ae..e683eb777d 100644 --- a/pkg/plugins/client.go +++ b/pkg/plugins/client.go @@ -18,6 +18,12 @@ import ( const ( defaultTimeOut = 30 + + // dummyHost is a hostname used for local communication. + // + // For local communications (npipe://, unix://), the hostname is not used, + // but we need valid and meaningful hostname. + dummyHost = "plugin.moby.localhost" ) func newTransport(addr string, tlsConfig *tlsconfig.Options) (transport.Transport, error) { @@ -44,8 +50,12 @@ func newTransport(addr string, tlsConfig *tlsconfig.Options) (transport.Transpor return nil, err } scheme := httpScheme(u) - - return transport.NewHTTPTransport(tr, scheme, socket), nil + hostName := u.Host + if hostName == "" || u.Scheme == "unix" || u.Scheme == "npipe" { + // Override host header for non-tcp connections. + hostName = dummyHost + } + return transport.NewHTTPTransport(tr, scheme, hostName), nil } // NewClient creates a new plugin client (http).