瀏覽代碼

registry: default --insecure-registry to localhost and 127.0.0.1

Signed-off-by: Johan Euphrosine <proppy@google.com>
Johan Euphrosine 10 年之前
父節點
當前提交
28ee373e19
共有 2 個文件被更改,包括 32 次插入1 次删除
  1. 11 1
      registry/endpoint.go
  2. 21 0
      registry/registry_test.go

+ 11 - 1
registry/endpoint.go

@@ -4,6 +4,7 @@ import (
 	"encoding/json"
 	"encoding/json"
 	"fmt"
 	"fmt"
 	"io/ioutil"
 	"io/ioutil"
+	"net"
 	"net/http"
 	"net/http"
 	"net/url"
 	"net/url"
 	"strings"
 	"strings"
@@ -154,7 +155,16 @@ func IsSecure(hostname string, insecureRegistries []string) bool {
 	if hostname == IndexServerAddress() {
 	if hostname == IndexServerAddress() {
 		return true
 		return true
 	}
 	}
-
+	if len(insecureRegistries) == 0 {
+		host, _, err := net.SplitHostPort(hostname)
+		if err != nil {
+			host = hostname
+		}
+		if host == "127.0.0.1" || host == "localhost" {
+			return false
+		}
+		return true
+	}
 	for _, h := range insecureRegistries {
 	for _, h := range insecureRegistries {
 		if hostname == h {
 		if hostname == h {
 			return false
 			return false

+ 21 - 0
registry/registry_test.go

@@ -339,3 +339,24 @@ func TestIsSecure(t *testing.T) {
 		}
 		}
 	}
 	}
 }
 }
+
+func TestIsSecure(t *testing.T) {
+	tests := []struct {
+		addr               string
+		insecureRegistries []string
+		expected           bool
+	}{
+		{"localhost", []string{}, false},
+		{"localhost:5000", []string{}, false},
+		{"127.0.0.1", []string{}, false},
+		{"localhost", []string{"example.com"}, true},
+		{"127.0.0.1", []string{"example.com"}, true},
+		{"example.com", []string{}, true},
+		{"example.com", []string{"example.com"}, false},
+	}
+	for _, tt := range tests {
+		if sec := IsSecure(tt.addr, tt.insecureRegistries); sec != tt.expected {
+			t.Errorf("IsSecure failed for %q %v, expected %v got %v", tt.addr, tt.insecureRegistries, tt.expected, sec)
+		}
+	}
+}