diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-07-02 20:09:07 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-07-02 20:09:28 +0200 |
commit | d6db1157bcab7ace13f046bdfa107b456c1dfbe3 (patch) | |
tree | 3c4206aa2948ba6a72aab519fa71b023607c3a75 | |
parent | d7ada03b8a6d3258f7558f69f916517ddce36ac3 (diff) | |
parent | 72b9452b1d5ff8761466e9810facfd50103cc63b (diff) |
Merge pull request #6362
72b9452 When processing RPC commands during warmup phase, parse the request object before returning an error so that id value can be used in the response. (Forrest Voight)
-rw-r--r-- | src/rpcserver.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 13b8661c65..287cfb2f13 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -931,13 +931,6 @@ static bool HTTPReq_JSONRPC(AcceptedConnection *conn, if (!valRequest.read(strRequest)) throw JSONRPCError(RPC_PARSE_ERROR, "Parse error"); - // Return immediately if in warmup - { - LOCK(cs_rpcWarmup); - if (fRPCInWarmup) - throw JSONRPCError(RPC_IN_WARMUP, rpcWarmupStatus); - } - string strReply; // singleton request @@ -1009,6 +1002,13 @@ void ServiceConnection(AcceptedConnection *conn) UniValue CRPCTable::execute(const std::string &strMethod, const UniValue ¶ms) const { + // Return immediately if in warmup + { + LOCK(cs_rpcWarmup); + if (fRPCInWarmup) + throw JSONRPCError(RPC_IN_WARMUP, rpcWarmupStatus); + } + // Find method const CRPCCommand *pcmd = tableRPC[strMethod]; if (!pcmd) |