Fix httpserver with disabled server

This commit is contained in:
Nicolas JUHEL
2021-04-27 10:00:01 +02:00
parent 7a979ffc9a
commit f7d389590b
2 changed files with 29 additions and 7 deletions

View File

@@ -36,6 +36,8 @@ const (
ErrorPoolListen ErrorPoolListen
ErrorServerValidate ErrorServerValidate
ErrorPortUse ErrorPortUse
ErrorServerDisabled
ErrorServerOffline
) )
var isCodeError = false var isCodeError = false
@@ -67,6 +69,10 @@ func getMessage(code errors.CodeError) (message string) {
return "config server seems to be not valid" return "config server seems to be not valid"
case ErrorPortUse: case ErrorPortUse:
return "server port is still used" return "server port is still used"
case ErrorServerDisabled:
return "server disabled"
case ErrorServerOffline:
return "server offline"
} }
return "" return ""

View File

@@ -92,6 +92,14 @@ func (s *server) GetConfig() *ServerConfig {
} }
} }
func (s *server) IsDisabled() bool {
if c := s.GetConfig(); c != nil {
return c.Disabled
}
return true
}
func (s *server) SetConfig(cfg *ServerConfig) bool { func (s *server) SetConfig(cfg *ServerConfig) bool {
if cfg == nil { if cfg == nil {
return false return false
@@ -160,6 +168,13 @@ func (s *server) IsTLS() bool {
} }
func (s *server) Listen(handler http.Handler) liberr.Error { func (s *server) Listen(handler http.Handler) liberr.Error {
if s.IsDisabled() && !s.IsRunning() {
return nil
} else if s.IsDisabled() {
s.Shutdown()
return nil
}
r := s.getRun() r := s.getRun()
e := r.Listen(s.GetConfig(), handler) e := r.Listen(s.GetConfig(), handler)
s.setRun(r) s.setRun(r)
@@ -177,6 +192,10 @@ func (s *server) Restart() {
} }
func (s *server) Shutdown() { func (s *server) Shutdown() {
if s.IsDisabled() && !s.IsRunning() {
return
}
r := s.getRun() r := s.getRun()
r.Shutdown() r.Shutdown()
s.setRun(r) s.setRun(r)
@@ -199,17 +218,14 @@ func (s *server) StatusInfo() (name string, release string, hash string) {
} }
func (s *server) StatusHealth() error { func (s *server) StatusHealth() error {
c := s.GetConfig() if !s.IsDisabled() && s.IsRunning() {
if !c.Disabled && s.IsRunning() {
return nil return nil
} else if c.Disabled { } else if s.IsDisabled() {
//nolint #goerr113 return ErrorServerDisabled.Error(nil)
return fmt.Errorf("server disabled")
} else if e := s.getErr(); e != nil { } else if e := s.getErr(); e != nil {
return e return e
} else { } else {
//nolint #goerr113 return ErrorServerOffline.Error(nil)
return fmt.Errorf("server is offline -- missing error")
} }
} }