TUN-890: To support free tunnels, hostname can now be ""

This commit is contained in:
Adam Chalmers 2018-09-11 11:47:36 -05:00 committed by Areg Harutyunyan
parent 4f04f35bd1
commit d0bc4d0d96
4 changed files with 3 additions and 26 deletions

View File

@ -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")
} }

View File

@ -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") {

View File

@ -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") {

View File

@ -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"