Report an error if RPC subscribe specifies no streams.

This commit is contained in:
Arthur Britto
2013-01-16 15:22:29 -08:00
parent 8069ac8ab7
commit 97716977c9

View File

@@ -2347,40 +2347,47 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest)
if (jvRequest.isMember("streams")) if (jvRequest.isMember("streams"))
{ {
for (Json::Value::iterator it = jvRequest["streams"].begin(); it != jvRequest["streams"].end(); it++) if (jvRequest["streams"].empty())
{ {
if ((*it).isString()) jvResult["error"] = "noStreams";
}
else
{
for (Json::Value::iterator it = jvRequest["streams"].begin(); it != jvRequest["streams"].end(); it++)
{ {
std::string streamName=(*it).asString(); if ((*it).isString())
if (streamName=="server")
{ {
mNetOps->subServer(ispSub, jvResult); std::string streamName=(*it).asString();
} if (streamName=="server")
else if (streamName=="ledger") {
{ mNetOps->subServer(ispSub, jvResult);
mNetOps->subLedger(ispSub, jvResult);
} }
else if (streamName=="transactions") else if (streamName=="ledger")
{ {
mNetOps->subTransactions(ispSub); mNetOps->subLedger(ispSub, jvResult);
} }
else if (streamName=="rt_transactions") else if (streamName=="transactions")
{ {
mNetOps->subRTTransactions(ispSub); mNetOps->subTransactions(ispSub);
}
else if (streamName=="rt_transactions")
{
mNetOps->subRTTransactions(ispSub);
}
else
{
jvResult["error"] = str(boost::format("Unknown stream: %s") % streamName);
}
} }
else else
{ {
jvResult["error"] = str(boost::format("Unknown stream: %s") % streamName); jvResult["error"] = "malformedStream";
} }
} }
else
{
jvResult["error"] = "malformedSteam";
}
} }
} }