aboutsummaryrefslogtreecommitdiffstats
path: root/node
diff options
context:
space:
mode:
authorbas-vk <bas-vk@users.noreply.github.com>2017-04-13 05:04:14 +0800
committerFelix Lange <fjl@users.noreply.github.com>2017-04-13 05:04:14 +0800
commit5e29f4be935ff227bbf07a0c6e80e8809f5e0202 (patch)
tree18e1ef8db3c66c3bf777dc90326aa971f1343d34 /node
parent43671067fb453a1ed798bcc3d8016710460f2bdf (diff)
downloaddexon-5e29f4be935ff227bbf07a0c6e80e8809f5e0202.tar.gz
dexon-5e29f4be935ff227bbf07a0c6e80e8809f5e0202.tar.zst
dexon-5e29f4be935ff227bbf07a0c6e80e8809f5e0202.zip
cmd/utils, node: remove unused solc references and improve RPC config (#14324)
Currently http cors and websocket origins are a comma separated string in the config object. These are replaced with string arrays that are more expressive in case of a config file.
Diffstat (limited to 'node')
-rw-r--r--node/api.go22
-rw-r--r--node/config.go4
-rw-r--r--node/node.go4
3 files changed, 20 insertions, 10 deletions
diff --git a/node/api.go b/node/api.go
index 3c451fc8a..570cb9d98 100644
--- a/node/api.go
+++ b/node/api.go
@@ -92,8 +92,13 @@ func (api *PrivateAdminAPI) StartRPC(host *string, port *int, cors *string, apis
if port == nil {
port = &api.node.config.HTTPPort
}
- if cors == nil {
- cors = &api.node.config.HTTPCors
+
+ allowedOrigins := api.node.config.HTTPCors
+ if cors != nil {
+ allowedOrigins = nil
+ for _, origin := range strings.Split(*cors, ",") {
+ allowedOrigins = append(allowedOrigins, strings.TrimSpace(origin))
+ }
}
modules := api.node.httpWhitelist
@@ -104,7 +109,7 @@ func (api *PrivateAdminAPI) StartRPC(host *string, port *int, cors *string, apis
}
}
- if err := api.node.startHTTP(fmt.Sprintf("%s:%d", *host, *port), api.node.rpcAPIs, modules, *cors); err != nil {
+ if err := api.node.startHTTP(fmt.Sprintf("%s:%d", *host, *port), api.node.rpcAPIs, modules, allowedOrigins); err != nil {
return false, err
}
return true, nil
@@ -141,8 +146,13 @@ func (api *PrivateAdminAPI) StartWS(host *string, port *int, allowedOrigins *str
if port == nil {
port = &api.node.config.WSPort
}
- if allowedOrigins == nil {
- allowedOrigins = &api.node.config.WSOrigins
+
+ origins := api.node.config.WSOrigins
+ if allowedOrigins != nil {
+ origins = nil
+ for _, origin := range strings.Split(*allowedOrigins, ",") {
+ origins = append(origins, strings.TrimSpace(origin))
+ }
}
modules := api.node.config.WSModules
@@ -153,7 +163,7 @@ func (api *PrivateAdminAPI) StartWS(host *string, port *int, allowedOrigins *str
}
}
- if err := api.node.startWS(fmt.Sprintf("%s:%d", *host, *port), api.node.rpcAPIs, modules, *allowedOrigins); err != nil {
+ if err := api.node.startWS(fmt.Sprintf("%s:%d", *host, *port), api.node.rpcAPIs, modules, origins); err != nil {
return false, err
}
return true, nil
diff --git a/node/config.go b/node/config.go
index 7c17e707d..1bab4c574 100644
--- a/node/config.go
+++ b/node/config.go
@@ -100,7 +100,7 @@ type Config struct {
// HTTPCors is the Cross-Origin Resource Sharing header to send to requesting
// clients. Please be aware that CORS is a browser enforced security, it's fully
// useless for custom HTTP clients.
- HTTPCors string `toml:",omitempty"`
+ HTTPCors []string `toml:",omitempty"`
// HTTPModules is a list of API modules to expose via the HTTP RPC interface.
// If the module list is empty, all RPC API endpoints designated public will be
@@ -119,7 +119,7 @@ type Config struct {
// WSOrigins is the list of domain to accept websocket requests from. Please be
// aware that the server can only act upon the HTTP request the client sends and
// cannot verify the validity of the request header.
- WSOrigins string `toml:",omitempty"`
+ WSOrigins []string `toml:",omitempty"`
// WSModules is a list of API modules to expose via the websocket RPC interface.
// If the module list is empty, all RPC API endpoints designated public will be
diff --git a/node/node.go b/node/node.go
index 2ecff2308..dc2ff0701 100644
--- a/node/node.go
+++ b/node/node.go
@@ -372,7 +372,7 @@ func (n *Node) stopIPC() {
}
// startHTTP initializes and starts the HTTP RPC endpoint.
-func (n *Node) startHTTP(endpoint string, apis []rpc.API, modules []string, cors string) error {
+func (n *Node) startHTTP(endpoint string, apis []rpc.API, modules []string, cors []string) error {
// Short circuit if the HTTP endpoint isn't being exposed
if endpoint == "" {
return nil
@@ -426,7 +426,7 @@ func (n *Node) stopHTTP() {
}
// startWS initializes and starts the websocket RPC endpoint.
-func (n *Node) startWS(endpoint string, apis []rpc.API, modules []string, wsOrigins string) error {
+func (n *Node) startWS(endpoint string, apis []rpc.API, modules []string, wsOrigins []string) error {
// Short circuit if the WS endpoint isn't being exposed
if endpoint == "" {
return nil