From e32116abadfff811234c78d02e235d0da95270ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Hurtado?= Date: Tue, 8 Oct 2019 09:20:58 +0200 Subject: [PATCH] Rewrite --- internal/server/control/control.go | 65 +++---------------------- internal/server/control/control_test.go | 20 +------- 2 files changed, 9 insertions(+), 76 deletions(-) diff --git a/internal/server/control/control.go b/internal/server/control/control.go index a9fd6ea..668bccf 100644 --- a/internal/server/control/control.go +++ b/internal/server/control/control.go @@ -1,84 +1,35 @@ package control import ( - "errors" - "fmt" "net/http" "github.com/gorilla/mux" ) type ControlServer struct { - bindAddr string - ctrlMux *mux.Router - traceChannel chan string - useTLS bool - certfile string - keyfile string + bindAddr string + ctrlMux *mux.Router } -var server *ControlServer +var Server *ControlServer -func NewControlServer(bindAddr string, listenPort int, certfile, keyfile string) (*ControlServer, error) { +func (srv *ControlServer) Run(bindAddr string) { - if server == nil { - var useTLS bool + Server = &ControlServer{bindAddr, mux.NewRouter()} - if certfile == "" && keyfile != "" { - return nil, errors.New("No keyfile provided") - } else if certfile != "" && keyfile == "" { - return nil, errors.New("No certfile provided") - } else if certfile != "" && keyfile != "" { - useTLS = true - } else { - useTLS = false - } - - server = &ControlServer{ - bindAddr: fmt.Sprintf("%s:%d", bindAddr, listenPort), - useTLS: useTLS, - certfile: certfile, - keyfile: keyfile, - ctrlMux: mux.NewRouter(), - } - - server.ctrlMux.HandleFunc("/routes/{id}", server.removeRoute).Methods("DELETE") - server.ctrlMux.HandleFunc("/routes", server.listRoutes).Methods("GET") - server.ctrlMux.HandleFunc("/routes", server.addRoute).Methods("POST") - } - - return server, nil -} - -func (srv *ControlServer) Start(traceChannel chan string) { - - srv.traceChannel = traceChannel - - // Start the server - var err error - if srv.useTLS { - err = http.ListenAndServeTLS(srv.bindAddr, srv.certfile, srv.keyfile, srv.ctrlMux) - } else { - err = http.ListenAndServe(srv.bindAddr, srv.ctrlMux) - } - - srv.traceChannel <- err.Error() + Server.ctrlMux.HandleFunc("/routes/{id}", Server.removeRoute).Methods("DELETE") + Server.ctrlMux.HandleFunc("/routes", Server.listRoutes).Methods("GET") + Server.ctrlMux.HandleFunc("/routes", Server.addRoute).Methods("POST") } func (srv *ControlServer) removeRoute(http.ResponseWriter, *http.Request) { - var logRecord string - defer func() { srv.traceChannel <- logRecord }() } func (srv *ControlServer) listRoutes(http.ResponseWriter, *http.Request) { - var logRecord string - defer func() { srv.traceChannel <- logRecord }() } func (srv *ControlServer) addRoute(http.ResponseWriter, *http.Request) { - var logRecord string - defer func() { srv.traceChannel <- logRecord }() } diff --git a/internal/server/control/control_test.go b/internal/server/control/control_test.go index e83b15f..adf0cc5 100644 --- a/internal/server/control/control_test.go +++ b/internal/server/control/control_test.go @@ -1,4 +1,4 @@ -package control +package control_test import ( "testing" @@ -6,22 +6,4 @@ import ( func TestNewControlServerFillsTheStructCorrectly(t *testing.T) { - server, err := NewControlServer("0.0.0.0", 8080, "/certfile.pem", "/keyfile.pem") - - if err != nil { - - } - - if server.bindAddr != "0.0.0.0:8080" { - t.Errorf("BindAddress incorrectly composed. Expected: %s, got: %s", "0.0.0.0:8080", server.bindAddr) - } - - if server.certfile != "/certfile.pem" { - t.Errorf("BindAddress incorrectly composed. Expected: %s, got: %s", "/certfile.pem", server.certfile) - } - - if server.keyfile != "/keyfile.pem" { - t.Errorf("BindAddress incorrectly composed. Expected: %s, got: %s", "/keyfile.pem", server.keyfile) - } - }