aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-04-01 18:38:29 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-04-01 18:38:29 +0800
commit720d978e356bba74160dbdd95b51bcb8087fb92e (patch)
tree27e56e9c426331c660331e4d0b8bf81b10ac95a4 /cmd
parent4e8f8cfab701bb6c4ad2b8cf166d642f408ca398 (diff)
parent35d00e00c52ad7d7c13e53b598e61fc332052f7b (diff)
downloadgo-tangerine-720d978e356bba74160dbdd95b51bcb8087fb92e.tar.gz
go-tangerine-720d978e356bba74160dbdd95b51bcb8087fb92e.tar.zst
go-tangerine-720d978e356bba74160dbdd95b51bcb8087fb92e.zip
Merge pull request #589 from tgerring/corssetting
Configurable CORS domain
Diffstat (limited to 'cmd')
-rw-r--r--cmd/geth/admin.go16
-rw-r--r--cmd/geth/main.go1
-rw-r--r--cmd/mist/main.go7
-rw-r--r--cmd/utils/flags.go23
4 files changed, 31 insertions, 16 deletions
diff --git a/cmd/geth/admin.go b/cmd/geth/admin.go
index 3a58b8881..b217e88b5 100644
--- a/cmd/geth/admin.go
+++ b/cmd/geth/admin.go
@@ -2,8 +2,6 @@ package main
import (
"fmt"
- "net"
- "net/http"
"os"
"time"
@@ -70,12 +68,20 @@ func (js *jsre) startRPC(call otto.FunctionCall) otto.Value {
return otto.FalseValue()
}
- l, err := net.Listen("tcp", fmt.Sprintf("%s:%d", addr, port))
+ config := rpc.RpcConfig{
+ ListenAddress: addr,
+ ListenPort: uint(port),
+ // CorsDomain: ctx.GlobalString(RPCCORSDomainFlag.Name),
+ }
+
+ xeth := xeth.New(js.ethereum, nil)
+ err = rpc.Start(xeth, config)
+
if err != nil {
- fmt.Printf("Can't listen on %s:%d: %v", addr, port, err)
+ fmt.Printf(err.Error())
return otto.FalseValue()
}
- go http.Serve(l, rpc.JSONRPC(xeth.New(js.ethereum, nil)))
+
return otto.TrueValue()
}
diff --git a/cmd/geth/main.go b/cmd/geth/main.go
index 05e2e4ae6..62e30ac9a 100644
--- a/cmd/geth/main.go
+++ b/cmd/geth/main.go
@@ -233,6 +233,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
utils.VMDebugFlag,
utils.ProtocolVersionFlag,
utils.NetworkIdFlag,
+ utils.RPCCORSDomainFlag,
}
// missing:
diff --git a/cmd/mist/main.go b/cmd/mist/main.go
index fab651b22..6780cfb3a 100644
--- a/cmd/mist/main.go
+++ b/cmd/mist/main.go
@@ -47,12 +47,19 @@ var (
Usage: "absolute path to GUI assets directory",
Value: common.DefaultAssetPath(),
}
+ rpcCorsFlag = utils.RPCCORSDomainFlag
)
func init() {
+ // Mist-specific default
+ if len(rpcCorsFlag.Value) == 0 {
+ rpcCorsFlag.Value = "http://localhost"
+ }
+
app.Action = run
app.Flags = []cli.Flag{
assetPathFlag,
+ rpcCorsFlag,
utils.BootnodesFlag,
utils.DataDirFlag,
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 2a3e2f447..e82fd9c28 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -2,9 +2,6 @@ package utils
import (
"crypto/ecdsa"
- "fmt"
- "net"
- "net/http"
"os"
"path"
"runtime"
@@ -148,7 +145,11 @@ var (
Usage: "Port on which the JSON-RPC server should listen",
Value: 8545,
}
-
+ RPCCORSDomainFlag = cli.StringFlag{
+ Name: "rpccorsdomain",
+ Usage: "Domain on which to send Access-Control-Allow-Origin header",
+ Value: "",
+ }
// Network Settings
MaxPeersFlag = cli.IntFlag{
Name: "maxpeers",
@@ -255,12 +256,12 @@ func GetAccountManager(ctx *cli.Context) *accounts.Manager {
}
func StartRPC(eth *eth.Ethereum, ctx *cli.Context) {
- addr := ctx.GlobalString(RPCListenAddrFlag.Name)
- port := ctx.GlobalInt(RPCPortFlag.Name)
- fmt.Println("Starting RPC on port: ", port)
- l, err := net.Listen("tcp", fmt.Sprintf("%s:%d", addr, port))
- if err != nil {
- Fatalf("Can't listen on %s:%d: %v", addr, port, err)
+ config := rpc.RpcConfig{
+ ListenAddress: ctx.GlobalString(RPCListenAddrFlag.Name),
+ ListenPort: uint(ctx.GlobalInt(RPCPortFlag.Name)),
+ CorsDomain: ctx.GlobalString(RPCCORSDomainFlag.Name),
}
- go http.Serve(l, rpc.JSONRPC(xeth.New(eth, nil)))
+
+ xeth := xeth.New(eth, nil)
+ _ = rpc.Start(xeth, config)
}