rpc: check that "version" is "2.0" in request objects (#25570)
The JSON-RPC spec requires the "version" field to be exactly "2.0", so we should verify that. This change is not backwards-compatible with sloppy client implementations, but I decided to go ahead with it anyway because the failure will be caught via the returned error.
This commit is contained in:
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
// This test checks processing of messages with invalid Version.
|
||||
|
||||
--> {"jsonrpc":"2.0","id":1,"method":"test_echo","params":["x", 3]}
|
||||
<-- {"jsonrpc":"2.0","id":1,"result":{"String":"x","Int":3,"Args":null}}
|
||||
|
||||
--> {"jsonrpc":"2.1","id":1,"method":"test_echo","params":["x", 3]}
|
||||
<-- {"jsonrpc":"2.0","id":1,"error":{"code":-32600,"message":"invalid request"}}
|
||||
|
||||
--> {"jsonrpc":"go-ethereum","id":1,"method":"test_echo","params":["x", 3]}
|
||||
<-- {"jsonrpc":"2.0","id":1,"error":{"code":-32600,"message":"invalid request"}}
|
||||
|
||||
--> {"jsonrpc":1,"id":1,"method":"test_echo","params":["x", 3]}
|
||||
<-- {"jsonrpc":"2.0","id":1,"error":{"code":-32600,"message":"invalid request"}}
|
||||
|
||||
--> {"jsonrpc":2.0,"id":1,"method":"test_echo","params":["x", 3]}
|
||||
<-- {"jsonrpc":"2.0","id":1,"error":{"code":-32600,"message":"invalid request"}}
|
||||
|
||||
--> {"id":1,"method":"test_echo","params":["x", 3]}
|
||||
<-- {"jsonrpc":"2.0","id":1,"error":{"code":-32600,"message":"invalid request"}}
|
||||
Reference in New Issue
Block a user