فهرست منبع

simplify http server starter

kevin 4 سال پیش
والد
کامیت
3806e66cf1
1فایلهای تغییر یافته به همراه8 افزوده شده و 30 حذف شده
  1. 8 30
      rest/internal/starter.go

+ 8 - 30
rest/internal/starter.go

@@ -2,7 +2,6 @@ package internal
 
 import (
 	"context"
-	"crypto/tls"
 	"fmt"
 	"net/http"
 
@@ -10,48 +9,27 @@ import (
 )
 
 func StartHttp(host string, port int, handler http.Handler) error {
-	addr := fmt.Sprintf("%s:%d", host, port)
-	server := buildHttpServer(addr, handler)
-	return start(server, func(srv *http.Server) error {
+	return start(host, port, handler, func(srv *http.Server) error {
 		return srv.ListenAndServe()
 	})
 }
 
 func StartHttps(host string, port int, certFile, keyFile string, handler http.Handler) error {
-	addr := fmt.Sprintf("%s:%d", host, port)
-	server, err := buildHttpsServer(addr, handler, certFile, keyFile)
-	if err != nil {
-		return err
-	}
-
-	return start(server, func(srv *http.Server) error {
+	return start(host, port, handler, func(srv *http.Server) error {
 		// certFile and keyFile are set in buildHttpsServer
-		return srv.ListenAndServeTLS("", "")
+		return srv.ListenAndServeTLS(certFile, keyFile)
 	})
 }
 
-func buildHttpServer(addr string, handler http.Handler) *http.Server {
-	return &http.Server{Addr: addr, Handler: handler}
-}
-
-func buildHttpsServer(addr string, handler http.Handler, certFile, keyFile string) (*http.Server, error) {
-	cert, err := tls.LoadX509KeyPair(certFile, keyFile)
-	if err != nil {
-		return nil, err
+func start(host string, port int, handler http.Handler, run func(srv *http.Server) error) error {
+	server := &http.Server{
+		Addr:    fmt.Sprintf("%s:%d", host, port),
+		Handler: handler,
 	}
-
-	config := tls.Config{Certificates: []tls.Certificate{cert}}
-	return &http.Server{
-		Addr:      addr,
-		Handler:   handler,
-		TLSConfig: &config,
-	}, nil
-}
-
-func start(server *http.Server, run func(srv *http.Server) error) error {
 	waitForCalled := proc.AddWrapUpListener(func() {
 		server.Shutdown(context.Background())
 	})
 	defer waitForCalled()
+
 	return run(server)
 }