Преглед изворни кода

cli/js console: if corsDomain is not given to startRpc, we fall back to value set on command line with `-corsDomain`

zelig пре 10 година
родитељ
комит
6b1b5a4a2a
4 измењених фајлова са 14 додато и 11 уклоњено
  1. 2 1
      cmd/geth/admin.go
  2. 9 7
      cmd/geth/js.go
  3. 1 1
      cmd/geth/js_test.go
  4. 2 2
      cmd/geth/main.go

+ 2 - 1
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 {

+ 9 - 7
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()

+ 1 - 1
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
 }
 

+ 2 - 2
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)
 	}