Răsfoiți Sursa

Fixed http listener error. (#843)

fangjianwei 3 ani în urmă
părinte
comite
b812e74d6f
1 a modificat fișierele cu 6 adăugiri și 2 ștergeri
  1. 6 2
      rest/internal/starter.go

+ 6 - 2
rest/internal/starter.go

@@ -23,7 +23,7 @@ func StartHttps(host string, port int, certFile, keyFile string, handler http.Ha
 	})
 }
 
-func start(host string, port int, handler http.Handler, run func(srv *http.Server) error) error {
+func start(host string, port int, handler http.Handler, run func(srv *http.Server) error) (err error) {
 	server := &http.Server{
 		Addr:    fmt.Sprintf("%s:%d", host, port),
 		Handler: handler,
@@ -31,7 +31,11 @@ func start(host string, port int, handler http.Handler, run func(srv *http.Serve
 	waitForCalled := proc.AddWrapUpListener(func() {
 		server.Shutdown(context.Background())
 	})
-	defer waitForCalled()
+	defer func() {
+		if err == http.ErrServerClosed {
+			waitForCalled()
+		}
+	}()
 
 	return run(server)
 }