From 2d8fb05f57b85abc52ce8d649cec25329a02e76a Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 6 Mar 2013 14:07:56 -0800 Subject: [PATCH] Set correct issuers. --- src/cpp/ripple/RPCHandler.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index 0e7b9a949..ed19012d8 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -1229,7 +1229,7 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest) for (unsigned int i=0; i != jvSrcCurrencies.size(); ++i) { Json::Value jvSource = jvSrcCurrencies[i]; uint160 uSrcCurrencyID; - uint160 uSrcIssuerID = raSrc.getAccountID(); + uint160 uSrcIssuerID; // Parse mandatory currency. if (!jvSource.isMember("currency") @@ -1239,13 +1239,15 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest) return rpcError(rpcSRC_CUR_MALFORMED); } + if (uSrcCurrencyID.isNonZero()) + uSrcIssuerID = raSrc.getAccountID(); + // Parse optional issuer. - else if (((jvSource.isMember("issuer")) - && (!jvSource["issuer"].isString() - || !STAmount::issuerFromString(uSrcIssuerID, jvSource["issuer"].asString()))) - // Don't allow illegal issuers. - || !uSrcIssuerID - || ACCOUNT_ONE == uSrcIssuerID) + if (jvSource.isMember("issuer") && + ((!jvSource["issuer"].isString() || + !STAmount::issuerFromString(uSrcIssuerID, jvSource["issuer"].asString())) || + (uSrcIssuerID.isZero() != uSrcCurrencyID.isZero()) || + (ACCOUNT_ONE == uSrcIssuerID))) { cLog(lsINFO) << "Bad issuer.";