diff options
author | 2024-05-29 11:21:04 +0000 | |
---|---|---|
committer | 2024-05-29 13:21:04 +0200 | |
commit | 32e570abfd72ff8fdb44088f136b956a37f569b2 (patch) | |
tree | 44a361c9528d7538ad5de613db9ff7d97909c613 /internal/router/router.go | |
parent | [feature] Implement profile API (#2926) (diff) | |
download | gotosocial-32e570abfd72ff8fdb44088f136b956a37f569b2.tar.xz |
[chore] improved startup / shutdown (#2925)
* improved server shutdown with more precise shutdown of modules + deferring of ALL of it
* make the same changes to the testrig server
* use testrig specific func
* update variable name to fix nilptr
* fix removal of setting db on state
Diffstat (limited to 'internal/router/router.go')
-rw-r--r-- | internal/router/router.go | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/internal/router/router.go b/internal/router/router.go index b2fb7418e..3a790dec9 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -122,7 +122,7 @@ func New(ctx context.Context) (*Router, error) { // // It will serve two handlers if letsencrypt is enabled, // and only the web/API handler if letsencrypt is not enabled. -func (r *Router) Start() { +func (r *Router) Start() error { var ( // listen is the server start function. // By default this points to a regular @@ -143,10 +143,16 @@ func (r *Router) Start() { // that either both or neither of Chain and Key // are set, so we can forego checking again here. listen, err = r.customTLS(certFile, keyFile) + if err != nil { + return err + } // TLS with letsencrypt. case leEnabled: listen, err = r.letsEncryptTLS() + if err != nil { + return err + } // Default listen. TLS must // be handled by reverse proxy. @@ -154,10 +160,6 @@ func (r *Router) Start() { listen = r.srv.ListenAndServe } - if err != nil { - log.Fatal(nil, err) - } - // Pass the server handler through a debug pprof middleware handler. // For standard production builds this will be a no-op, but when the // "debug" or "debugenv" build-tag is set pprof stats will be served @@ -177,12 +179,14 @@ func (r *Router) Start() { log.Fatalf(nil, "listen: %s", err) } }() + + return nil } -// Stop shuts down the router nicely -func (r *Router) Stop(ctx context.Context) error { +// Stop shuts down the router nicely. +func (r *Router) Stop() error { log.Infof(nil, "shutting down http router with %s grace period", shutdownTimeout) - timeout, cancel := context.WithTimeout(ctx, shutdownTimeout) + timeout, cancel := context.WithTimeout(context.Background(), shutdownTimeout) defer cancel() if err := r.srv.Shutdown(timeout); err != nil { |