From 3c9b700a52d371d6da220d3de55a27d63beb7c58 Mon Sep 17 00:00:00 2001 From: Mustafa KIRIMLI Date: Mon, 9 Sep 2019 16:50:36 +0400 Subject: [PATCH] add tcp as supported protocol --- cmd/cloudflared/access/cmd.go | 2 +- cmd/cloudflared/tunnel/cmd.go | 9 +++++++++ cmd/cloudflared/tunnel/cmd_test.go | 1 + validation/validation.go | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cmd/cloudflared/access/cmd.go b/cmd/cloudflared/access/cmd.go index dde26b3f..ab40f960 100644 --- a/cmd/cloudflared/access/cmd.go +++ b/cmd/cloudflared/access/cmd.go @@ -115,7 +115,7 @@ func Commands() []*cli.Command { { Name: "ssh", Action: ssh, - Aliases: []string{"rdp"}, + Aliases: []string{"rdp", "tcp"}, Usage: "", ArgsUsage: "", Description: `The ssh subcommand sends data over a proxy to the Cloudflare edge.`, diff --git a/cmd/cloudflared/tunnel/cmd.go b/cmd/cloudflared/tunnel/cmd.go index 2de58774..6572dd04 100644 --- a/cmd/cloudflared/tunnel/cmd.go +++ b/cmd/cloudflared/tunnel/cmd.go @@ -622,10 +622,19 @@ func hostnameFromURI(uri string) string { return addPortIfMissing(u, 22) case "rdp": return addPortIfMissing(u, 3389) + case "tcp": + return errorIfPortMissing(u) } return "" } +func errorIfPortMissing(uri *url.URL) string { + if uri.Port() == "" { + return "Port must be speficied for" + } + return uri.Host +} + func addPortIfMissing(uri *url.URL, port int) string { if uri.Port() != "" { return uri.Host diff --git a/cmd/cloudflared/tunnel/cmd_test.go b/cmd/cloudflared/tunnel/cmd_test.go index b29b3966..7a6c2347 100644 --- a/cmd/cloudflared/tunnel/cmd_test.go +++ b/cmd/cloudflared/tunnel/cmd_test.go @@ -12,6 +12,7 @@ func TestHostnameFromURI(t *testing.T) { assert.Equal(t, "awesome.warptunnels.horse:2222", hostnameFromURI("ssh://awesome.warptunnels.horse:2222")) assert.Equal(t, "localhost:3389", hostnameFromURI("rdp://localhost")) assert.Equal(t, "localhost:3390", hostnameFromURI("rdp://localhost:3390")) + assert.Equal(t, "localhost:3306", hostnameFromURI("tcp://localhost:3306")) assert.Equal(t, "", hostnameFromURI("trash")) assert.Equal(t, "", hostnameFromURI("https://awesomesauce.com")) } diff --git a/validation/validation.go b/validation/validation.go index 91e795fe..c1351ef2 100644 --- a/validation/validation.go +++ b/validation/validation.go @@ -16,7 +16,7 @@ import ( const defaultScheme = "http" var ( - supportedProtocols = []string{"http", "https", "rdp"} + supportedProtocols = []string{"http", "https", "rdp", "tcp"} validationTimeout = time.Duration(30 * time.Second) )