From 6b1b5a4a2a8b315f4d0e7a08ab10563653711a92 Mon Sep 17 00:00:00 2001 From: zelig Date: Wed, 22 Apr 2015 14:55:01 +0100 Subject: [PATCH] cli/js console: if corsDomain is not given to startRpc, we fall back to value set on command line with `-corsDomain` --- cmd/geth/admin.go | 3 ++- cmd/geth/js.go | 16 +++++++++------- cmd/geth/js_test.go | 2 +- cmd/geth/main.go | 4 ++-- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/cmd/geth/admin.go b/cmd/geth/admin.go index 646b45bf9a..31f8d44004 100644 --- a/cmd/geth/admin.go +++ b/cmd/geth/admin.go @@ -203,13 +203,14 @@ func (js *jsre) startRPC(call otto.FunctionCall) otto.Value { fmt.Println(err) return otto.FalseValue() } + port, err := call.Argument(1).ToInteger() if err != nil { fmt.Println(err) return otto.FalseValue() } - var corsDomain string + corsDomain := js.corsDomain if len(call.ArgumentList) > 2 { corsDomain, err = call.Argument(2).ToString() if err != nil { diff --git a/cmd/geth/js.go b/cmd/geth/js.go index abbd655137..a545de1d05 100644 --- a/cmd/geth/js.go +++ b/cmd/geth/js.go @@ -59,17 +59,19 @@ func (r dumbterm) PasswordPrompt(p string) (string, error) { func (r dumbterm) AppendHistory(string) {} type jsre struct { - re *re.JSRE - ethereum *eth.Ethereum - xeth *xeth.XEth - ps1 string - atexit func() - + re *re.JSRE + ethereum *eth.Ethereum + xeth *xeth.XEth + ps1 string + atexit func() + corsDomain string prompter } -func newJSRE(ethereum *eth.Ethereum, libPath string, interactive bool) *jsre { +func newJSRE(ethereum *eth.Ethereum, libPath string, interactive bool, corsDomain string) *jsre { js := &jsre{ethereum: ethereum, ps1: "> "} + // set default cors domain used by startRpc from CLI flag + js.corsDomain = corsDomain js.xeth = xeth.New(ethereum, js) js.re = re.New(libPath) js.apiBindings() diff --git a/cmd/geth/js_test.go b/cmd/geth/js_test.go index 662e195e55..50528b80aa 100644 --- a/cmd/geth/js_test.go +++ b/cmd/geth/js_test.go @@ -36,7 +36,7 @@ func testJEthRE(t *testing.T) (*jsre, *eth.Ethereum) { t.Fatal("%v", err) } assetPath := path.Join(os.Getenv("GOPATH"), "src", "github.com", "ethereum", "go-ethereum", "cmd", "mist", "assets", "ext") - repl := newJSRE(ethereum, assetPath, false) + repl := newJSRE(ethereum, assetPath, false, "") return repl, ethereum } diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 70be2ed2e1..dd87632b6b 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -296,7 +296,7 @@ func console(ctx *cli.Context) { } startEth(ctx, ethereum) - repl := newJSRE(ethereum, ctx.String(utils.JSpathFlag.Name), true) + repl := newJSRE(ethereum, ctx.String(utils.JSpathFlag.Name), true, ctx.GlobalString(utils.RPCCORSDomainFlag.Name)) repl.interactive() ethereum.Stop() @@ -311,7 +311,7 @@ func execJSFiles(ctx *cli.Context) { } startEth(ctx, ethereum) - repl := newJSRE(ethereum, ctx.String(utils.JSpathFlag.Name), false) + repl := newJSRE(ethereum, ctx.String(utils.JSpathFlag.Name), false, ctx.GlobalString(utils.RPCCORSDomainFlag.Name)) for _, file := range ctx.Args() { repl.exec(file) }