Merge pull request #589 from tgerring/corssetting
Configurable CORS domain
This commit is contained in:
@ -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()
|
||||
}
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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,
|
||||
|
@ -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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user