diff options
author | Felix Lange <fjl@twurst.com> | 2015-03-10 06:25:46 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2015-03-10 06:25:46 +0800 |
commit | 9bf513e99305af733110cf23a0b47c8e73359010 (patch) | |
tree | f9d36e1ae1f2f7c3eb803c7499a4e85a5cdcd5bd /rpc | |
parent | cd51860bf024d949a09b3863c88a278a386227a7 (diff) | |
parent | 676a0de58d3d7c508b0eeeff192d2095a46f7382 (diff) | |
download | dexon-9bf513e99305af733110cf23a0b47c8e73359010.tar dexon-9bf513e99305af733110cf23a0b47c8e73359010.tar.gz dexon-9bf513e99305af733110cf23a0b47c8e73359010.tar.bz2 dexon-9bf513e99305af733110cf23a0b47c8e73359010.tar.lz dexon-9bf513e99305af733110cf23a0b47c8e73359010.tar.xz dexon-9bf513e99305af733110cf23a0b47c8e73359010.tar.zst dexon-9bf513e99305af733110cf23a0b47c8e73359010.zip |
Merge ethereum/poc-9 into accounts-integration
Conflicts:
cmd/utils/cmd.go
cmd/utils/flags.go
core/manager.go
eth/backend.go
rpc/http/server.go
xeth/xeth.go
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/api.go | 15 | ||||
-rw-r--r-- | rpc/http.go | 12 |
2 files changed, 12 insertions, 15 deletions
diff --git a/rpc/api.go b/rpc/api.go index c3aa7186b..d6854bbab 100644 --- a/rpc/api.go +++ b/rpc/api.go @@ -9,7 +9,6 @@ For each request type, define the following: package rpc import ( - "fmt" "math/big" "path" "strings" @@ -24,7 +23,6 @@ import ( "github.com/ethereum/go-ethereum/event" "github.com/ethereum/go-ethereum/event/filter" "github.com/ethereum/go-ethereum/state" - "github.com/ethereum/go-ethereum/ui" "github.com/ethereum/go-ethereum/xeth" ) @@ -84,7 +82,7 @@ func (self *EthereumApi) setStateByBlockNumber(num int64) { block = chain.GetBlockByNumber(uint64(num)) if block != nil { - self.useState(state.New(block.Root(), self.xeth().Backend().Db())) + self.useState(state.New(block.Root(), self.xeth().Backend().StateDb())) } else { self.useState(chain.State()) } @@ -702,14 +700,3 @@ func (self *EthereumApi) useState(statedb *state.StateDB) { self.eth = self.eth.UseState(statedb) } - -func t(f ui.Frontend) { - // Call the password dialog - ret, err := f.Call("PasswordDialog") - if err != nil { - fmt.Println(err) - } - // Get the first argument - t, _ := ret.Get(0) - fmt.Println("return:", t) -} diff --git a/rpc/http.go b/rpc/http.go index 44e2ad6ab..857cf3221 100644 --- a/rpc/http.go +++ b/rpc/http.go @@ -9,10 +9,14 @@ import ( var rpchttplogger = logger.NewLogger("RPC-HTTP") +const ( + jsonrpcver = "2.0" + maxSizeReqLength = 1024 * 1024 // 1MB +) + // JSONRPC returns a handler that implements the Ethereum JSON-RPC API. func JSONRPC(pipe *xeth.XEth, dataDir string) http.Handler { var json JsonWrapper - const jsonrpcver = "2.0" api := NewEthereumApi(pipe, dataDir) return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { @@ -20,6 +24,12 @@ func JSONRPC(pipe *xeth.XEth, dataDir string) http.Handler { rpchttplogger.DebugDetailln("Handling request") + if req.ContentLength > maxSizeReqLength { + jsonerr := &RpcErrorObject{-32700, "Error: Request too large"} + json.Send(w, &RpcErrorResponse{JsonRpc: jsonrpcver, ID: nil, Error: jsonerr}) + return + } + reqParsed, reqerr := json.ParseRequestBody(req) if reqerr != nil { jsonerr := &RpcErrorObject{-32700, "Error: Could not parse request"} |