diff options
Diffstat (limited to 'internal')
-rw-r--r-- | internal/config/multi_string_flag.go | 4 | ||||
-rw-r--r-- | internal/config/validate.go | 15 |
2 files changed, 19 insertions, 0 deletions
diff --git a/internal/config/multi_string_flag.go b/internal/config/multi_string_flag.go index fc63299b..0d90b572 100644 --- a/internal/config/multi_string_flag.go +++ b/internal/config/multi_string_flag.go @@ -49,3 +49,7 @@ func (s *MultiStringFlag) sep() string { return s.separator } + +func (s *MultiStringFlag) Len() int { + return len(s.value) +} diff --git a/internal/config/validate.go b/internal/config/validate.go index f73aabff..87f932c0 100644 --- a/internal/config/validate.go +++ b/internal/config/validate.go @@ -10,6 +10,10 @@ import ( ) func validateConfig(config *Config) error { + if err := validateListeners(config); err != nil { + return err + } + if err := validateAuthConfig(config); err != nil { return err } @@ -21,6 +25,17 @@ func validateConfig(config *Config) error { return tls.ValidateTLSVersions(*tlsMinVersion, *tlsMaxVersion) } +func validateListeners(config *Config) error { + if config.ListenHTTPStrings.Len() == 0 && + config.ListenHTTPSStrings.Len() == 0 && + config.ListenHTTPSProxyv2Strings.Len() == 0 && + config.ListenProxyStrings.Len() == 0 { + return errors.New("no listener defined, please specify at least one --listen-* flag") + } + + return nil +} + func validateAuthConfig(config *Config) error { if config.Authentication.Secret == "" && config.Authentication.ClientID == "" && config.Authentication.ClientSecret == "" && config.Authentication.RedirectURI == "" { |