Procházet zdrojové kódy

Disable timeout for push

Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)
Victor Vieux před 11 roky
rodič
revize
8baafacf40
4 změnil soubory, kde provedl 15 přidání a 16 odebrání
  1. 11 12
      registry/registry.go
  2. 1 1
      registry/registry_test.go
  3. 1 1
      registry/service.go
  4. 2 2
      server/server.go

+ 11 - 12
registry/registry.go

@@ -790,22 +790,21 @@ func AddRequiredHeadersToRedirectedRequests(req *http.Request, via []*http.Reque
 	return nil
 }
 
-func NewRegistry(authConfig *AuthConfig, factory *utils.HTTPRequestFactory, indexEndpoint string) (r *Registry, err error) {
-	httpDial := func(proto string, addr string) (net.Conn, error) {
-		conn, err := net.Dial(proto, addr)
-		if err != nil {
-			return nil, err
-		}
-		conn = utils.NewTimeoutConn(conn, time.Duration(1)*time.Minute)
-		return conn, nil
-	}
-
+func NewRegistry(authConfig *AuthConfig, factory *utils.HTTPRequestFactory, indexEndpoint string, timeout bool) (r *Registry, err error) {
 	httpTransport := &http.Transport{
-		Dial:              httpDial,
 		DisableKeepAlives: true,
 		Proxy:             http.ProxyFromEnvironment,
 	}
-
+	if timeout {
+		httpTransport.Dial = func(proto string, addr string) (net.Conn, error) {
+			conn, err := net.Dial(proto, addr)
+			if err != nil {
+				return nil, err
+			}
+			conn = utils.NewTimeoutConn(conn, time.Duration(1)*time.Minute)
+			return conn, nil
+		}
+	}
 	r = &Registry{
 		authConfig: authConfig,
 		client: &http.Client{

+ 1 - 1
registry/registry_test.go

@@ -18,7 +18,7 @@ var (
 
 func spawnTestRegistry(t *testing.T) *Registry {
 	authConfig := &AuthConfig{}
-	r, err := NewRegistry(authConfig, utils.NewHTTPRequestFactory(), makeURL("/v1/"))
+	r, err := NewRegistry(authConfig, utils.NewHTTPRequestFactory(), makeURL("/v1/"), true)
 	if err != nil {
 		t.Fatal(err)
 	}

+ 1 - 1
registry/service.go

@@ -82,7 +82,7 @@ func (s *Service) Search(job *engine.Job) engine.Status {
 	job.GetenvJson("authConfig", authConfig)
 	job.GetenvJson("metaHeaders", metaHeaders)
 
-	r, err := NewRegistry(authConfig, HTTPRequestFactory(metaHeaders), IndexServerAddress())
+	r, err := NewRegistry(authConfig, HTTPRequestFactory(metaHeaders), IndexServerAddress(), true)
 	if err != nil {
 		return job.Error(err)
 	}

+ 2 - 2
server/server.go

@@ -1387,7 +1387,7 @@ func (srv *Server) ImagePull(job *engine.Job) engine.Status {
 		return job.Error(err)
 	}
 
-	r, err := registry.NewRegistry(authConfig, registry.HTTPRequestFactory(metaHeaders), endpoint)
+	r, err := registry.NewRegistry(authConfig, registry.HTTPRequestFactory(metaHeaders), endpoint, true)
 	if err != nil {
 		return job.Error(err)
 	}
@@ -1610,7 +1610,7 @@ func (srv *Server) ImagePush(job *engine.Job) engine.Status {
 	}
 
 	img, err := srv.daemon.Graph().Get(localName)
-	r, err2 := registry.NewRegistry(authConfig, registry.HTTPRequestFactory(metaHeaders), endpoint)
+	r, err2 := registry.NewRegistry(authConfig, registry.HTTPRequestFactory(metaHeaders), endpoint, false)
 	if err2 != nil {
 		return job.Error(err2)
 	}