mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Fix a crash if a client requests an order book snapshot before we have a published ledger.
This commit is contained in:
@@ -3492,24 +3492,27 @@ Json::Value RPCHandler::doSubscribe (Json::Value params, LoadType* loadType, App
|
|||||||
if (bSnapshot)
|
if (bSnapshot)
|
||||||
{
|
{
|
||||||
Ledger::pointer lpLedger = getApp().getLedgerMaster ().getPublishedLedger ();
|
Ledger::pointer lpLedger = getApp().getLedgerMaster ().getPublishedLedger ();
|
||||||
const Json::Value jvMarker = Json::Value (Json::nullValue);
|
if (lpLedger)
|
||||||
|
|
||||||
if (bBoth)
|
|
||||||
{
|
{
|
||||||
Json::Value jvBids (Json::objectValue);
|
const Json::Value jvMarker = Json::Value (Json::nullValue);
|
||||||
Json::Value jvAsks (Json::objectValue);
|
|
||||||
|
|
||||||
mNetOps->getBookPage (lpLedger, uTakerPaysCurrencyID, uTakerPaysIssuerID, uTakerGetsCurrencyID, uTakerGetsIssuerID, raTakerID.getAccountID (), false, 0, jvMarker, jvBids);
|
if (bBoth)
|
||||||
|
{
|
||||||
|
Json::Value jvBids (Json::objectValue);
|
||||||
|
Json::Value jvAsks (Json::objectValue);
|
||||||
|
|
||||||
if (jvBids.isMember ("offers")) jvResult["bids"] = jvBids["offers"];
|
mNetOps->getBookPage (lpLedger, uTakerPaysCurrencyID, uTakerPaysIssuerID, uTakerGetsCurrencyID, uTakerGetsIssuerID, raTakerID.getAccountID (), false, 0, jvMarker, jvBids);
|
||||||
|
|
||||||
mNetOps->getBookPage (lpLedger, uTakerGetsCurrencyID, uTakerGetsIssuerID, uTakerPaysCurrencyID, uTakerPaysIssuerID, raTakerID.getAccountID (), false, 0, jvMarker, jvAsks);
|
if (jvBids.isMember ("offers")) jvResult["bids"] = jvBids["offers"];
|
||||||
|
|
||||||
if (jvAsks.isMember ("offers")) jvResult["asks"] = jvAsks["offers"];
|
mNetOps->getBookPage (lpLedger, uTakerGetsCurrencyID, uTakerGetsIssuerID, uTakerPaysCurrencyID, uTakerPaysIssuerID, raTakerID.getAccountID (), false, 0, jvMarker, jvAsks);
|
||||||
}
|
|
||||||
else
|
if (jvAsks.isMember ("offers")) jvResult["asks"] = jvAsks["offers"];
|
||||||
{
|
}
|
||||||
mNetOps->getBookPage (lpLedger, uTakerPaysCurrencyID, uTakerPaysIssuerID, uTakerGetsCurrencyID, uTakerGetsIssuerID, raTakerID.getAccountID (), false, 0, jvMarker, jvResult);
|
else
|
||||||
|
{
|
||||||
|
mNetOps->getBookPage (lpLedger, uTakerPaysCurrencyID, uTakerPaysIssuerID, uTakerGetsCurrencyID, uTakerGetsIssuerID, raTakerID.getAccountID (), false, 0, jvMarker, jvResult);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user