aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2015-07-02 20:09:07 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2015-07-02 20:09:28 +0200
commitd6db1157bcab7ace13f046bdfa107b456c1dfbe3 (patch)
tree3c4206aa2948ba6a72aab519fa71b023607c3a75 /src
parentd7ada03b8a6d3258f7558f69f916517ddce36ac3 (diff)
parent72b9452b1d5ff8761466e9810facfd50103cc63b (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)
Diffstat (limited to 'src')
-rw-r--r--src/rpcserver.cpp14
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 &params) 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)