diff options
author | obscuren <geffobscura@gmail.com> | 2015-02-12 06:46:54 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-02-12 06:46:54 +0800 |
commit | b64ad7a2a6544564b68f362f18c70476310396d6 (patch) | |
tree | e31866584192023142f17bad3aeff84a015c7f2c /rpc | |
parent | da2fae0e437f9467a943acfe0571a8a24e8e76fd (diff) | |
parent | 3f6baa45a7fb1ae5fd7966d2763a2a776a65eb96 (diff) | |
download | go-tangerine-b64ad7a2a6544564b68f362f18c70476310396d6.tar go-tangerine-b64ad7a2a6544564b68f362f18c70476310396d6.tar.gz go-tangerine-b64ad7a2a6544564b68f362f18c70476310396d6.tar.bz2 go-tangerine-b64ad7a2a6544564b68f362f18c70476310396d6.tar.lz go-tangerine-b64ad7a2a6544564b68f362f18c70476310396d6.tar.xz go-tangerine-b64ad7a2a6544564b68f362f18c70476310396d6.tar.zst go-tangerine-b64ad7a2a6544564b68f362f18c70476310396d6.zip |
Merge branch 'develop' into miner
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/http/server.go | 2 | ||||
-rw-r--r-- | rpc/message.go | 6 | ||||
-rw-r--r-- | rpc/util.go | 2 | ||||
-rw-r--r-- | rpc/ws/server.go | 5 |
4 files changed, 8 insertions, 7 deletions
diff --git a/rpc/http/server.go b/rpc/http/server.go index a34400a77..10c8fa813 100644 --- a/rpc/http/server.go +++ b/rpc/http/server.go @@ -102,7 +102,7 @@ func (s *RpcHttpServer) apiHandler(api *rpc.EthereumApi) http.Handler { if reserr != nil { rpchttplogger.Warnln(reserr) jsonerr := &rpc.RpcErrorObject{-32603, reserr.Error()} - JSON.Send(w, &rpc.RpcErrorResponse{JsonRpc: jsonrpcver, ID: &reqParsed.ID, Error: jsonerr}) + JSON.Send(w, &rpc.RpcErrorResponse{JsonRpc: jsonrpcver, ID: reqParsed.ID, Error: jsonerr}) return } diff --git a/rpc/message.go b/rpc/message.go index 78dc6e2ff..7983e003d 100644 --- a/rpc/message.go +++ b/rpc/message.go @@ -34,20 +34,20 @@ const ( ) type RpcRequest struct { + ID interface{} `json:"id"` JsonRpc string `json:"jsonrpc"` - ID int `json:"id"` Method string `json:"method"` Params []json.RawMessage `json:"params"` } type RpcSuccessResponse struct { - ID int `json:"id"` + ID interface{} `json:"id"` JsonRpc string `json:"jsonrpc"` Result interface{} `json:"result"` } type RpcErrorResponse struct { - ID *int `json:"id"` + ID interface{} `json:"id"` JsonRpc string `json:"jsonrpc"` Error *RpcErrorObject `json:"error"` } diff --git a/rpc/util.go b/rpc/util.go index 509d9a17d..679d83754 100644 --- a/rpc/util.go +++ b/rpc/util.go @@ -47,7 +47,6 @@ func (self JsonWrapper) ParseRequestBody(req *http.Request) (RpcRequest, error) // Convert JSON to native types d := json.NewDecoder(req.Body) - // d.UseNumber() defer req.Body.Close() err := d.Decode(&reqParsed) @@ -55,6 +54,7 @@ func (self JsonWrapper) ParseRequestBody(req *http.Request) (RpcRequest, error) rpclogger.Errorln("Error decoding JSON: ", err) return reqParsed, err } + rpclogger.DebugDetailf("Parsed request: %s", reqParsed) return reqParsed, nil diff --git a/rpc/ws/server.go b/rpc/ws/server.go index 6be4e8ce9..100713c10 100644 --- a/rpc/ws/server.go +++ b/rpc/ws/server.go @@ -94,9 +94,10 @@ func sockHandler(api *rpc.EthereumApi) websocket.Handler { var jsonrpcver string = "2.0" fn := func(conn *websocket.Conn) { for { - wslogger.Debugln("Handling request") + wslogger.Debugln("Handling connection") var reqParsed rpc.RpcRequest + // reqParsed, reqerr := JSON.ParseRequestBody(conn.Request()) if err := websocket.JSON.Receive(conn, &reqParsed); err != nil { jsonerr := &rpc.RpcErrorObject{-32700, rpc.ErrorParseRequest} JSON.Send(conn, &rpc.RpcErrorResponse{JsonRpc: jsonrpcver, ID: nil, Error: jsonerr}) @@ -108,7 +109,7 @@ func sockHandler(api *rpc.EthereumApi) websocket.Handler { if reserr != nil { wslogger.Warnln(reserr) jsonerr := &rpc.RpcErrorObject{-32603, reserr.Error()} - JSON.Send(conn, &rpc.RpcErrorResponse{JsonRpc: jsonrpcver, ID: &reqParsed.ID, Error: jsonerr}) + JSON.Send(conn, &rpc.RpcErrorResponse{JsonRpc: jsonrpcver, ID: reqParsed.ID, Error: jsonerr}) continue } |