mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
rpc: refactor to install module validity checker for WS server too
Signed-off-by: meows <b5c6@protonmail.com>
This commit is contained in:
parent
0572ca3c61
commit
ddaee90378
1 changed files with 32 additions and 23 deletions
|
|
@ -23,11 +23,11 @@ import (
|
|||
"github.com/ethereum/go-ethereum/log"
|
||||
)
|
||||
|
||||
// StartHTTPEndpoint starts the HTTP RPC endpoint, configured with cors/vhosts/modules
|
||||
func StartHTTPEndpoint(endpoint string, apis []API, modules []string, cors []string, vhosts []string, timeouts HTTPTimeouts) (net.Listener, *Server, error) {
|
||||
// Generate the whitelist based on the allowed modules
|
||||
whitelist := make(map[string]bool)
|
||||
for _, module := range modules {
|
||||
// mustAvailableModule enforces that requested api modules (eg. via --rpcapi) are actually
|
||||
// available API services. If an invalid module is given (ie API "foo" wanted which does not exist),
|
||||
// then log.Crit is used to cause program to exit, logging the invalid module and a list of available
|
||||
// API service names.
|
||||
func mustAvailableModule(module string, apis []API) {
|
||||
apiExists := false
|
||||
for _, api := range apis {
|
||||
if module == api.Namespace {
|
||||
|
|
@ -51,6 +51,14 @@ func StartHTTPEndpoint(endpoint string, apis []API, modules []string, cors []str
|
|||
return strings.Join(available, ",")
|
||||
}())
|
||||
}
|
||||
}
|
||||
|
||||
// StartHTTPEndpoint starts the HTTP RPC endpoint, configured with cors/vhosts/modules
|
||||
func StartHTTPEndpoint(endpoint string, apis []API, modules []string, cors []string, vhosts []string, timeouts HTTPTimeouts) (net.Listener, *Server, error) {
|
||||
// Generate the whitelist based on the allowed modules
|
||||
whitelist := make(map[string]bool)
|
||||
for _, module := range modules {
|
||||
mustAvailableModule(module, apis)
|
||||
whitelist[module] = true
|
||||
}
|
||||
// Register all the APIs exposed by the services
|
||||
|
|
@ -81,6 +89,7 @@ func StartWSEndpoint(endpoint string, apis []API, modules []string, wsOrigins []
|
|||
// Generate the whitelist based on the allowed modules
|
||||
whitelist := make(map[string]bool)
|
||||
for _, module := range modules {
|
||||
mustAvailableModule(module, apis)
|
||||
whitelist[module] = true
|
||||
}
|
||||
// Register all the APIs exposed by the services
|
||||
|
|
|
|||
Loading…
Reference in a new issue