From 75f549d408c89e6051519c6eafee2ec2c2c6531c Mon Sep 17 00:00:00 2001 From: William Banfield Date: Wed, 11 Aug 2021 20:38:43 -0400 Subject: [PATCH] remove env refactor --- rpc/jsonrpc/server/http_server.go | 18 +++++++++++++----- rpc/jsonrpc/server/http_server_test.go | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/rpc/jsonrpc/server/http_server.go b/rpc/jsonrpc/server/http_server.go index 04ec23474..c21c71c49 100644 --- a/rpc/jsonrpc/server/http_server.go +++ b/rpc/jsonrpc/server/http_server.go @@ -51,13 +51,16 @@ func DefaultConfig() *Config { // // NOTE: This function blocks - you may want to call it in a go-routine. func Serve(listener net.Listener, handler http.Handler, logger log.Logger, config *Config) error { + logger.Info(fmt.Sprintf("Starting RPC HTTP server on %s", listener.Addr())) s := &http.Server{ Handler: RecoverAndLogHandler(maxBytesHandler{h: handler, n: config.MaxBodyBytes}, logger), ReadTimeout: config.ReadTimeout, WriteTimeout: config.WriteTimeout, MaxHeaderBytes: config.MaxHeaderBytes, } - return s.Serve(listener) + err := s.Serve(listener) + logger.Info("RPC HTTP server stopped", "err", err) + return err } // Serve creates a http.Server and calls ServeTLS with the given listener, @@ -72,13 +75,18 @@ func ServeTLS( logger log.Logger, config *Config, ) error { + logger.Info(fmt.Sprintf("Starting RPC HTTPS server on %s (cert: %q, key: %q)", + listener.Addr(), certFile, keyFile)) s := &http.Server{ Handler: RecoverAndLogHandler(maxBytesHandler{h: handler, n: config.MaxBodyBytes}, logger), ReadTimeout: config.ReadTimeout, WriteTimeout: config.WriteTimeout, MaxHeaderBytes: config.MaxHeaderBytes, } - return s.ServeTLS(listener, certFile, keyFile) + err := s.ServeTLS(listener, certFile, keyFile) + + logger.Error("RPC HTTPS server stopped", "err", err) + return err } // WriteRPCResponseHTTPError marshals res as JSON (with indent) and writes it @@ -253,7 +261,7 @@ func (h maxBytesHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { // Listen starts a new net.Listener on the given address. // It returns an error if the address is invalid or the call to Listen() fails. -func Listen(addr string, maxOpenConnections int) (listener net.Listener, err error) { +func Listen(addr string, config *Config) (listener net.Listener, err error) { parts := strings.SplitN(addr, "://", 2) if len(parts) != 2 { return nil, fmt.Errorf( @@ -266,8 +274,8 @@ func Listen(addr string, maxOpenConnections int) (listener net.Listener, err err if err != nil { return nil, fmt.Errorf("failed to listen on %v: %v", addr, err) } - if maxOpenConnections > 0 { - listener = netutil.LimitListener(listener, maxOpenConnections) + if config.MaxOpenConnections > 0 { + listener = netutil.LimitListener(listener, config.MaxOpenConnections) } return listener, nil diff --git a/rpc/jsonrpc/server/http_server_test.go b/rpc/jsonrpc/server/http_server_test.go index a8e46d279..e7c517cde 100644 --- a/rpc/jsonrpc/server/http_server_test.go +++ b/rpc/jsonrpc/server/http_server_test.go @@ -40,7 +40,7 @@ func TestMaxOpenConnections(t *testing.T) { }) config := DefaultConfig() config.MaxOpenConnections = max - l, err := Listen("tcp://127.0.0.1:0", config.MaxOpenConnections) + l, err := Listen("tcp://127.0.0.1:0", config) require.NoError(t, err) defer l.Close() go Serve(l, mux, log.TestingLogger(), config) //nolint:errcheck // ignore for tests