TUN-890: To support free tunnels, hostname can now be ""
This commit is contained in:
parent
4f04f35bd1
commit
d0bc4d0d96
|
@ -400,7 +400,7 @@ func Commands() []*cli.Command {
|
||||||
Upon connecting, you are assigned a unique subdomain on cftunnel.com.
|
Upon connecting, you are assigned a unique subdomain on cftunnel.com.
|
||||||
You need to specify a hostname on a zone you control.
|
You need to specify a hostname on a zone you control.
|
||||||
A DNS record will be created to CNAME your hostname to the unique subdomain on cftunnel.com.
|
A DNS record will be created to CNAME your hostname to the unique subdomain on cftunnel.com.
|
||||||
|
|
||||||
Requests made to Cloudflare's servers for your hostname will be proxied
|
Requests made to Cloudflare's servers for your hostname will be proxied
|
||||||
through the tunnel to your local webserver.`,
|
through the tunnel to your local webserver.`,
|
||||||
Subcommands: cmds,
|
Subcommands: cmds,
|
||||||
|
@ -430,11 +430,6 @@ func StartServer(c *cli.Context, version string, shutdownC, graceShutdownC chan
|
||||||
logger.Warnf("Cannot determine default configuration path. No file %v in %v", defaultConfigFiles, config.DefaultConfigDirs)
|
logger.Warnf("Cannot determine default configuration path. No file %v in %v", defaultConfigFiles, config.DefaultConfigDirs)
|
||||||
}
|
}
|
||||||
|
|
||||||
// check whether client provides enough flags or env variables. If not, print help.
|
|
||||||
if ok := enoughOptionsSet(c); !ok {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := configMainLogger(c); err != nil {
|
if err := configMainLogger(c); err != nil {
|
||||||
return errors.Wrap(err, "Error configuring logger")
|
return errors.Wrap(err, "Error configuring logger")
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,24 +58,6 @@ func generateRandomClientID() string {
|
||||||
return hex.EncodeToString(id)
|
return hex.EncodeToString(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
func enoughOptionsSet(c *cli.Context) bool {
|
|
||||||
// For cloudflared to work, the user needs to at least provide a hostname,
|
|
||||||
// or runs as stand alone DNS proxy .
|
|
||||||
// When using sudo, use -E flag to preserve env vars
|
|
||||||
if c.NumFlags() == 0 && c.NArg() == 0 && os.Getenv("TUNNEL_HOSTNAME") == "" && os.Getenv("TUNNEL_DNS") == "" {
|
|
||||||
if isRunningFromTerminal() {
|
|
||||||
logger.Errorf("No arguments were provided. You need to at least specify the hostname for this tunnel. See %s", quickStartUrl)
|
|
||||||
logger.Infof("If you want to run Argo Tunnel client as a stand alone DNS proxy, run with --proxy-dns option or set TUNNEL_DNS environment variable.")
|
|
||||||
} else {
|
|
||||||
logger.Errorf("You need to specify all the options in a configuration file, or use environment variables. See %s and %s", serviceUrl, argumentsUrl)
|
|
||||||
logger.Infof("If you want to run Argo Tunnel client as a stand alone DNS proxy, specify proxy-dns option in the configuration file, or set TUNNEL_DNS environment variable.")
|
|
||||||
}
|
|
||||||
cli.ShowAppHelp(c)
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func handleDeprecatedOptions(c *cli.Context) error {
|
func handleDeprecatedOptions(c *cli.Context) error {
|
||||||
// Fail if the user provided an old authentication method
|
// Fail if the user provided an old authentication method
|
||||||
if c.IsSet("api-key") || c.IsSet("api-email") || c.IsSet("api-ca-key") {
|
if c.IsSet("api-key") || c.IsSet("api-email") || c.IsSet("api-ca-key") {
|
||||||
|
|
|
@ -15,7 +15,7 @@ var supportedProtocol = [2]string{"http", "https"}
|
||||||
|
|
||||||
func ValidateHostname(hostname string) (string, error) {
|
func ValidateHostname(hostname string) (string, error) {
|
||||||
if hostname == "" {
|
if hostname == "" {
|
||||||
return "", fmt.Errorf("Hostname should not be empty")
|
return "", nil
|
||||||
}
|
}
|
||||||
// users gives url(contains schema) not just hostname
|
// users gives url(contains schema) not just hostname
|
||||||
if strings.Contains(hostname, ":") || strings.Contains(hostname, "%3A") {
|
if strings.Contains(hostname, ":") || strings.Contains(hostname, "%3A") {
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
func TestValidateHostname(t *testing.T) {
|
func TestValidateHostname(t *testing.T) {
|
||||||
var inputHostname string
|
var inputHostname string
|
||||||
hostname, err := ValidateHostname(inputHostname)
|
hostname, err := ValidateHostname(inputHostname)
|
||||||
assert.Equal(t, err, fmt.Errorf("Hostname should not be empty"))
|
assert.Equal(t, err, nil)
|
||||||
assert.Empty(t, hostname)
|
assert.Empty(t, hostname)
|
||||||
|
|
||||||
inputHostname = "hello.example.com"
|
inputHostname = "hello.example.com"
|
||||||
|
|
Loading…
Reference in New Issue