From 74cd4f2fd01e08c3f309ac2369be7d199a52004e Mon Sep 17 00:00:00 2001 From: renaynay <41963722+renaynay@users.noreply.github.com> Date: Wed, 25 Mar 2020 15:28:09 +0100 Subject: [PATCH] dont overwrite registering apis --- node/node.go | 8 ++++++-- rpc/endpoints.go | 10 +++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/node/node.go b/node/node.go index 52ac182ca7..7ac643b035 100644 --- a/node/node.go +++ b/node/node.go @@ -372,7 +372,7 @@ func (n *Node) startHTTP(endpoint string, apis []rpc.API, modules []string, cors srv := rpc.NewServer() - err := RegisterApisFromWhitelist(apis, modules, srv) + err := registerApisFromWhitelist(apis, modules, srv) var ws http.Handler if n.httpEndpoint == n.wsEndpoint { @@ -697,7 +697,11 @@ func (n *Node) apis() []rpc.API { } } -func RegisterApisFromWhitelist(apis []rpc.API, modules []string, srv *rpc.Server) error { +func registerApisFromWhitelist(apis []rpc.API, modules []string, srv *rpc.Server) error { + if bad, available := rpc.CheckModuleAvailability(modules, apis); len(bad) > 0 { + log.Error("Unavailable modules in HTTP API list", "unavailable", bad, "available", available) + } + // Generate the whitelist based on the allowed modules whitelist := make(map[string]bool) for _, module := range modules { diff --git a/rpc/endpoints.go b/rpc/endpoints.go index a749735b47..10dc2e4949 100644 --- a/rpc/endpoints.go +++ b/rpc/endpoints.go @@ -24,10 +24,10 @@ import ( "github.com/ethereum/go-ethereum/log" ) -// checkModuleAvailability checks that all names given in modules are actually +// CheckModuleAvailability checks that all names given in modules are actually // available API services. It assumes that the MetadataApi module ("rpc") is always available; // the registration of this "rpc" module happens in NewServer() and is thus common to all endpoints. -func checkModuleAvailability(modules []string, apis []API) (bad, available []string) { +func CheckModuleAvailability(modules []string, apis []API) (bad, available []string) { availableSet := make(map[string]struct{}) for _, api := range apis { if _, ok := availableSet[api.Namespace]; !ok { @@ -45,10 +45,6 @@ func checkModuleAvailability(modules []string, apis []API) (bad, available []str // StartHTTPEndpoint starts the HTTP RPC endpoint, configured with cors/vhosts/modules. func StartHTTPEndpoint(endpoint string, apis []API, modules []string, timeouts HTTPTimeouts, handler http.Handler) (net.Listener, error) { - if bad, available := checkModuleAvailability(modules, apis); len(bad) > 0 { - log.Error("Unavailable modules in HTTP API list", "unavailable", bad, "available", available) - } - // Start the HTTP listener var ( listener net.Listener @@ -86,7 +82,7 @@ func StartHTTPEndpoint(endpoint string, apis []API, modules []string, timeouts H // StartWSEndpoint starts a websocket endpoint. func StartWSEndpoint(endpoint string, apis []API, modules []string, wsOrigins []string, exposeAll bool) (net.Listener, *Server, error) { - if bad, available := checkModuleAvailability(modules, apis); len(bad) > 0 { + if bad, available := CheckModuleAvailability(modules, apis); len(bad) > 0 { log.Error("Unavailable modules in WS API list", "unavailable", bad, "available", available) } // Generate the whitelist based on the allowed modules