From 14bf7d0ec22d7accf2a950910297828b70cd3491 Mon Sep 17 00:00:00 2001 From: Arthur Britto Date: Sun, 2 Dec 2012 18:25:12 -0800 Subject: [PATCH] Regularize irregular results for websocket interface too. --- src/cpp/ripple/RPCHandler.cpp | 36 ++++++++++++++++----------------- src/cpp/ripple/WSConnection.cpp | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index 09e2f7c84c..fac30b7d96 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -2154,23 +2154,7 @@ Json::Value RPCHandler::doRpcCommand(const std::string& strCommand, Json::Value& jvRequest["command"] = strCommand; - Json::Value jvResult; - - Json::Value jvRaw = doCommand(jvRequest, iRole); - - // Regularize result. - if (jvRaw.isObject()) - { - // Got an object. - jvResult = jvRaw; - } - else - { - // Probably got a string. - jvResult = Json::Value(Json::objectValue); - - jvResult["message"] = jvRaw; - } + Json::Value jvResult = doCommand(jvRequest, iRole); // Always report "status". On an error report the request as received. if (jvResult.isMember("error")) @@ -2306,7 +2290,23 @@ cLog(lsDEBUG) << "params.size: " << jvParams.size() << " array: " << jvParams.is else { try { - return (this->*(commandsA[i].dfpFunc))(jvParams); + Json::Value jvRaw = (this->*(commandsA[i].dfpFunc))(jvParams); + + // Regularize result. + if (jvRaw.isObject()) + { + // Got an object. + return jvRaw; + } + else + { + // Probably got a string. + Json::Value jvResult(Json::objectValue); + + jvResult["message"] = jvRaw; + + return jvResult; + } } catch (std::exception& e) { diff --git a/src/cpp/ripple/WSConnection.cpp b/src/cpp/ripple/WSConnection.cpp index 0027fea285..f217f07dae 100644 --- a/src/cpp/ripple/WSConnection.cpp +++ b/src/cpp/ripple/WSConnection.cpp @@ -79,7 +79,7 @@ Json::Value WSConnection::invokeCommand(Json::Value& jvRequest) // consistent. // // Regularize result. This is duplicate code. - if (jvResult["result"].isObject() && jvResult["result"].isMember("error")) + if (jvResult["result"].isMember("error")) { jvResult = jvResult["result"]; jvResult["status"] = "error";