Преглед на файлове

Merge pull request #20109 from thaJeztah/add_tcp_tls_proto

Fix 'tcp+tls' protocol not being accepted
David Calavera преди 9 години
родител
ревизия
14c63189a1
променени са 2 файла, в които са добавени 16 реда и са изтрити 2 реда
  1. 2 2
      pkg/urlutil/urlutil.go
  2. 14 0
      pkg/urlutil/urlutil_test.go

+ 2 - 2
pkg/urlutil/urlutil.go

@@ -11,7 +11,7 @@ var (
 	validPrefixes = map[string][]string{
 		"url":       {"http://", "https://"},
 		"git":       {"git://", "github.com/", "git@"},
-		"transport": {"tcp://", "udp://", "unix://"},
+		"transport": {"tcp://", "tcp+tls://", "udp://", "unix://"},
 	}
 	urlPathWithFragmentSuffix = regexp.MustCompile(".git(?:#.+)?$")
 )
@@ -35,7 +35,7 @@ func IsGitTransport(str string) bool {
 	return IsURL(str) || strings.HasPrefix(str, "git://") || strings.HasPrefix(str, "git@")
 }
 
-// IsTransportURL returns true if the provided str is a transport (tcp, udp, unix) URL.
+// IsTransportURL returns true if the provided str is a transport (tcp, tcp+tls, udp, unix) URL.
 func IsTransportURL(str string) bool {
 	return checkURL(str, "transport")
 }

+ 14 - 0
pkg/urlutil/urlutil_test.go

@@ -18,6 +18,12 @@ var (
 	invalidGitUrls = []string{
 		"http://github.com/docker/docker.git:#branch",
 	}
+	transportUrls = []string{
+		"tcp://example.com",
+		"tcp+tls://example.com",
+		"udp://example.com",
+		"unix:///example",
+	}
 )
 
 func TestValidGitTransport(t *testing.T) {
@@ -53,3 +59,11 @@ func TestIsGIT(t *testing.T) {
 		}
 	}
 }
+
+func TestIsTransport(t *testing.T) {
+	for _, url := range transportUrls {
+		if IsTransportURL(url) == false {
+			t.Fatalf("%q should be detected as valid Transport url", url)
+		}
+	}
+}