mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-24 21:15:58 +00:00
deploy: 6f8750316c
This commit is contained in:
@@ -1467,369 +1467,360 @@ $(function() {
|
||||
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  <span class="comment">// callbackFuncP.</span></div>
|
||||
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>  </div>
|
||||
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  <span class="comment">// Receive reply</span></div>
|
||||
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>  <span class="keywordflow">if</span> (iStatus == 401)</div>
|
||||
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  Throw<std::runtime_error>(</div>
|
||||
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>  <span class="stringliteral">"incorrect rpcuser or rpcpassword (authorization failed)"</span>);</div>
|
||||
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (</div>
|
||||
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  (iStatus >= 400) && (iStatus != 400) && (iStatus != 404) &&</div>
|
||||
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  (iStatus != 500)) <span class="comment">// ?</span></div>
|
||||
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>  Throw<std::runtime_error>(</div>
|
||||
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>(<span class="stringliteral">"server returned HTTP error "</span>) +</div>
|
||||
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(iStatus));</div>
|
||||
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strData.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
|
||||
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  Throw<std::runtime_error>(<span class="stringliteral">"no response from server"</span>);</div>
|
||||
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  </div>
|
||||
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>  <span class="comment">// Parse reply</span></div>
|
||||
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>  JLOG(j.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) << <span class="stringliteral">"RPC reply: "</span> << strData << <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  <span class="keywordflow">if</span> (strData.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/find.html">find</a>(<span class="stringliteral">"Unable to parse request"</span>) == 0 ||</div>
|
||||
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  strData.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/find.html">find</a>(jss::invalid_API_version.c_str()) == 0)</div>
|
||||
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  Throw<RequestNotParseable>(strData);</div>
|
||||
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>  <a class="code" href="classJson_1_1Reader.html">Json::Reader</a> reader;</div>
|
||||
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvReply;</div>
|
||||
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  <span class="keywordflow">if</span> (!reader.<a class="code" href="classJson_1_1Reader.html#a8ee4d40504e4f8b069745d762ab4d78c">parse</a>(strData, jvReply))</div>
|
||||
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  Throw<std::runtime_error>(<span class="stringliteral">"couldn't parse reply from server"</span>);</div>
|
||||
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  </div>
|
||||
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  <span class="keywordflow">if</span> (!jvReply)</div>
|
||||
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  Throw<std::runtime_error>(</div>
|
||||
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  <span class="stringliteral">"expected reply to have result, error and id properties"</span>);</div>
|
||||
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  </div>
|
||||
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvResult(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  </div>
|
||||
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  jvResult[<span class="stringliteral">"result"</span>] = jvReply;</div>
|
||||
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>  </div>
|
||||
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  (callbackFuncP)(jvResult);</div>
|
||||
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  }</div>
|
||||
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  </div>
|
||||
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>  }</div>
|
||||
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  </div>
|
||||
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  <span class="comment">// Build the request.</span></div>
|
||||
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  <span class="keyword">static</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01437"></a><span class="lineno"><a class="line" href="structripple_1_1RPCCallImp.html#a932251660d12e31109ecaeb2b7a78ff8"> 1437</a></span>  <a class="code" href="structripple_1_1RPCCallImp.html#a932251660d12e31109ecaeb2b7a78ff8">onRequest</a>(</div>
|
||||
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strMethod,</div>
|
||||
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> <span class="keyword">const</span>& jvParams,</div>
|
||||
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map<std::string, std::string></a> <span class="keyword">const</span>& headers,</div>
|
||||
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strPath,</div>
|
||||
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  boost::asio::streambuf& sb,</div>
|
||||
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strHost,</div>
|
||||
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>  <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> j)</div>
|
||||
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  {</div>
|
||||
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>  JLOG(j.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) << <span class="stringliteral">"requestRPC: strPath='"</span> << strPath << <span class="stringliteral">"'"</span>;</div>
|
||||
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>  <span class="keywordflow">if</span> (strData.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
|
||||
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  Throw<std::runtime_error>(<span class="stringliteral">"no response from server"</span>);</div>
|
||||
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>  </div>
|
||||
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>  <span class="comment">// Parse reply</span></div>
|
||||
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  JLOG(j.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) << <span class="stringliteral">"RPC reply: "</span> << strData << <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  <span class="keywordflow">if</span> (strData.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/find.html">find</a>(<span class="stringliteral">"Unable to parse request"</span>) == 0 ||</div>
|
||||
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>  strData.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/find.html">find</a>(jss::invalid_API_version.c_str()) == 0)</div>
|
||||
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>  Throw<RequestNotParseable>(strData);</div>
|
||||
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  <a class="code" href="classJson_1_1Reader.html">Json::Reader</a> reader;</div>
|
||||
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvReply;</div>
|
||||
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  <span class="keywordflow">if</span> (!reader.<a class="code" href="classJson_1_1Reader.html#a8ee4d40504e4f8b069745d762ab4d78c">parse</a>(strData, jvReply))</div>
|
||||
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  Throw<std::runtime_error>(<span class="stringliteral">"couldn't parse reply from server"</span>);</div>
|
||||
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>  </div>
|
||||
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>  <span class="keywordflow">if</span> (!jvReply)</div>
|
||||
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  Throw<std::runtime_error>(</div>
|
||||
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  <span class="stringliteral">"expected reply to have result, error and id properties"</span>);</div>
|
||||
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  </div>
|
||||
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvResult(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>  </div>
|
||||
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  jvResult[<span class="stringliteral">"result"</span>] = jvReply;</div>
|
||||
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  </div>
|
||||
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  (callbackFuncP)(jvResult);</div>
|
||||
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  }</div>
|
||||
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  </div>
|
||||
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  }</div>
|
||||
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>  </div>
|
||||
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  <span class="comment">// Build the request.</span></div>
|
||||
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  <span class="keyword">static</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01428"></a><span class="lineno"><a class="line" href="structripple_1_1RPCCallImp.html#a932251660d12e31109ecaeb2b7a78ff8"> 1428</a></span>  <a class="code" href="structripple_1_1RPCCallImp.html#a932251660d12e31109ecaeb2b7a78ff8">onRequest</a>(</div>
|
||||
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strMethod,</div>
|
||||
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> <span class="keyword">const</span>& jvParams,</div>
|
||||
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map<std::string, std::string></a> <span class="keyword">const</span>& headers,</div>
|
||||
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strPath,</div>
|
||||
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>  boost::asio::streambuf& sb,</div>
|
||||
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strHost,</div>
|
||||
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> j)</div>
|
||||
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  {</div>
|
||||
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  JLOG(j.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) << <span class="stringliteral">"requestRPC: strPath='"</span> << strPath << <span class="stringliteral">"'"</span>;</div>
|
||||
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  </div>
|
||||
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> osRequest(&sb);</div>
|
||||
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  osRequest << <a class="code" href="namespaceripple.html#a308b7ff6498ad19c844c1d36b5f0d7ae">createHTTPPost</a>(</div>
|
||||
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  strHost,</div>
|
||||
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  strPath,</div>
|
||||
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  <a class="code" href="namespaceripple.html#aa5bf57e1a7b6f174338fefbdfbc6ded6">JSONRPCRequest</a>(strMethod, jvParams, <a class="code" href="classJson_1_1Value.html">Json::Value</a>(1)),</div>
|
||||
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>  headers);</div>
|
||||
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  }</div>
|
||||
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> };</div>
|
||||
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  </div>
|
||||
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> osRequest(&sb);</div>
|
||||
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  osRequest << <a class="code" href="namespaceripple.html#a308b7ff6498ad19c844c1d36b5f0d7ae">createHTTPPost</a>(</div>
|
||||
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  strHost,</div>
|
||||
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  strPath,</div>
|
||||
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  <a class="code" href="namespaceripple.html#aa5bf57e1a7b6f174338fefbdfbc6ded6">JSONRPCRequest</a>(strMethod, jvParams, <a class="code" href="classJson_1_1Value.html">Json::Value</a>(1)),</div>
|
||||
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  headers);</div>
|
||||
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>  }</div>
|
||||
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> };</div>
|
||||
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>  </div>
|
||||
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  </div>
|
||||
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> <span class="comment">// Used internally by rpcClient.</span></div>
|
||||
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="keyword">static</span> <a class="code" href="classJson_1_1Value.html">Json::Value</a></div>
|
||||
<div class="line"><a name="l01452"></a><span class="lineno"><a class="line" href="namespaceripple.html#ab72afa7b2b33324b108c550dbc0a3c1f"> 1452</a></span> <a class="code" href="namespaceripple.html#ab72afa7b2b33324b108c550dbc0a3c1f">rpcCmdLineToJson</a>(</div>
|
||||
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::string></a> <span class="keyword">const</span>& args,</div>
|
||||
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a>& retParams,</div>
|
||||
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>  <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> j)</div>
|
||||
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> {</div>
|
||||
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvRequest(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>  </div>
|
||||
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> <span class="comment">// Used internally by rpcClient.</span></div>
|
||||
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> <span class="keyword">static</span> <a class="code" href="classJson_1_1Value.html">Json::Value</a></div>
|
||||
<div class="line"><a name="l01461"></a><span class="lineno"><a class="line" href="namespaceripple.html#ab72afa7b2b33324b108c550dbc0a3c1f"> 1461</a></span> <a class="code" href="namespaceripple.html#ab72afa7b2b33324b108c550dbc0a3c1f">rpcCmdLineToJson</a>(</div>
|
||||
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::string></a> <span class="keyword">const</span>& args,</div>
|
||||
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a>& retParams,</div>
|
||||
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> j)</div>
|
||||
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> {</div>
|
||||
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvRequest(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  </div>
|
||||
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>  <a class="code" href="classripple_1_1RPCParser.html">RPCParser</a> rpParser(j);</div>
|
||||
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvRpcParams(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a>);</div>
|
||||
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>  </div>
|
||||
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i != args.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); i++)</div>
|
||||
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>  jvRpcParams.<a class="code" href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">append</a>(args[i]);</div>
|
||||
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>  </div>
|
||||
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  retParams = <a class="code" href="classJson_1_1Value.html">Json::Value</a>(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>  </div>
|
||||
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  retParams[jss::method] = args[0];</div>
|
||||
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>  retParams[jss::params] = jvRpcParams;</div>
|
||||
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  </div>
|
||||
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  jvRequest = rpParser.<a class="code" href="classripple_1_1RPCParser.html#a1da7a782a9240c1b9fcce94bf6056b27">parseCommand</a>(args[0], jvRpcParams, <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>  </div>
|
||||
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>  <span class="keyword">auto</span> insert_api_version = [](<a class="code" href="classJson_1_1Value.html">Json::Value</a>& jr) {</div>
|
||||
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>  <span class="keywordflow">if</span> (jr.isObject() && !jr.isMember(jss::error) &&</div>
|
||||
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>  !jr.isMember(jss::api_version))</div>
|
||||
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>  {</div>
|
||||
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  jr[jss::api_version] = <a class="code" href="namespaceripple_1_1RPC.html#a8c4c4528421d724a8a82db708b1a761b">RPC::apiMaximumSupportedVersion</a>;</div>
|
||||
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  }</div>
|
||||
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>  };</div>
|
||||
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>  <a class="code" href="classripple_1_1RPCParser.html">RPCParser</a> rpParser(j);</div>
|
||||
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvRpcParams(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a>);</div>
|
||||
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>  </div>
|
||||
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i != args.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); i++)</div>
|
||||
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  jvRpcParams.<a class="code" href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">append</a>(args[i]);</div>
|
||||
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  </div>
|
||||
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>  retParams = <a class="code" href="classJson_1_1Value.html">Json::Value</a>(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>  </div>
|
||||
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  retParams[jss::method] = args[0];</div>
|
||||
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>  retParams[jss::params] = jvRpcParams;</div>
|
||||
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>  </div>
|
||||
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>  jvRequest = rpParser.<a class="code" href="classripple_1_1RPCParser.html#a1da7a782a9240c1b9fcce94bf6056b27">parseCommand</a>(args[0], jvRpcParams, <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  </div>
|
||||
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>  <span class="keyword">auto</span> insert_api_version = [](<a class="code" href="classJson_1_1Value.html">Json::Value</a>& jr) {</div>
|
||||
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>  <span class="keywordflow">if</span> (jr.isObject() && !jr.isMember(jss::error) &&</div>
|
||||
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  !jr.isMember(jss::api_version))</div>
|
||||
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>  {</div>
|
||||
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  jr[jss::api_version] = <a class="code" href="namespaceripple_1_1RPC.html#a8c4c4528421d724a8a82db708b1a761b">RPC::apiMaximumSupportedVersion</a>;</div>
|
||||
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>  }</div>
|
||||
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  };</div>
|
||||
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  </div>
|
||||
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>  <span class="keywordflow">if</span> (jvRequest.<a class="code" href="classJson_1_1Value.html#a8cf96c0f2a552051fcfc78ffee60e037">isObject</a>())</div>
|
||||
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>  insert_api_version(jvRequest);</div>
|
||||
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (jvRequest.<a class="code" href="classJson_1_1Value.html#a1627eb9d6568d6d0252fa8bb711c0a59">isArray</a>())</div>
|
||||
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/for_each.html">std::for_each</a>(jvRequest.<a class="code" href="classJson_1_1Value.html#a4544f7b3f4163ebe5da9273258936fe5">begin</a>(), jvRequest.<a class="code" href="classJson_1_1Value.html#af10a897ca5a73c578df78b434204139b">end</a>(), insert_api_version);</div>
|
||||
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>  </div>
|
||||
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  JLOG(j.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) << <span class="stringliteral">"RPC Request: "</span> << jvRequest << <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  <span class="keywordflow">return</span> jvRequest;</div>
|
||||
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> }</div>
|
||||
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>  </div>
|
||||
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>  <span class="keywordflow">if</span> (jvRequest.<a class="code" href="classJson_1_1Value.html#a8cf96c0f2a552051fcfc78ffee60e037">isObject</a>())</div>
|
||||
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>  insert_api_version(jvRequest);</div>
|
||||
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (jvRequest.<a class="code" href="classJson_1_1Value.html#a1627eb9d6568d6d0252fa8bb711c0a59">isArray</a>())</div>
|
||||
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/for_each.html">std::for_each</a>(jvRequest.<a class="code" href="classJson_1_1Value.html#a4544f7b3f4163ebe5da9273258936fe5">begin</a>(), jvRequest.<a class="code" href="classJson_1_1Value.html#af10a897ca5a73c578df78b434204139b">end</a>(), insert_api_version);</div>
|
||||
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>  </div>
|
||||
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>  JLOG(j.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) << <span class="stringliteral">"RPC Request: "</span> << jvRequest << <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>  <span class="keywordflow">return</span> jvRequest;</div>
|
||||
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> }</div>
|
||||
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> <a class="code" href="classJson_1_1Value.html">Json::Value</a></div>
|
||||
<div class="line"><a name="l01490"></a><span class="lineno"><a class="line" href="namespaceripple.html#aa9714d222b28553ab9f4e9baf34be4ff"> 1490</a></span> <a class="code" href="namespaceripple.html#aa9714d222b28553ab9f4e9baf34be4ff">cmdLineToJSONRPC</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::string></a> <span class="keyword">const</span>& args, <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> j)</div>
|
||||
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> {</div>
|
||||
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jv = <a class="code" href="classJson_1_1Value.html">Json::Value</a>(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>  <span class="keyword">auto</span> <span class="keyword">const</span> paramsObj = <a class="code" href="namespaceripple.html#ab72afa7b2b33324b108c550dbc0a3c1f">rpcCmdLineToJson</a>(args, jv, j);</div>
|
||||
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>  </div>
|
||||
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>  <span class="comment">// Re-use jv to return our formatted result.</span></div>
|
||||
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>  jv.<a class="code" href="classJson_1_1Value.html#a501a4d67e6c875255c2ecc03ccd2019b">clear</a>();</div>
|
||||
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>  </div>
|
||||
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> <a class="code" href="classJson_1_1Value.html">Json::Value</a></div>
|
||||
<div class="line"><a name="l01499"></a><span class="lineno"><a class="line" href="namespaceripple.html#aa9714d222b28553ab9f4e9baf34be4ff"> 1499</a></span> <a class="code" href="namespaceripple.html#aa9714d222b28553ab9f4e9baf34be4ff">cmdLineToJSONRPC</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::string></a> <span class="keyword">const</span>& args, <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> j)</div>
|
||||
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> {</div>
|
||||
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jv = <a class="code" href="classJson_1_1Value.html">Json::Value</a>(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>  <span class="keyword">auto</span> <span class="keyword">const</span> paramsObj = <a class="code" href="namespaceripple.html#ab72afa7b2b33324b108c550dbc0a3c1f">rpcCmdLineToJson</a>(args, jv, j);</div>
|
||||
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>  </div>
|
||||
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>  <span class="comment">// Re-use jv to return our formatted result.</span></div>
|
||||
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>  jv.<a class="code" href="classJson_1_1Value.html#a501a4d67e6c875255c2ecc03ccd2019b">clear</a>();</div>
|
||||
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>  </div>
|
||||
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>  <span class="comment">// Allow parser to rewrite method.</span></div>
|
||||
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>  jv[jss::method] = paramsObj.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::method)</div>
|
||||
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>  ? paramsObj[jss::method].asString()</div>
|
||||
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>  : args[0];</div>
|
||||
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>  </div>
|
||||
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>  <span class="comment">// If paramsObj is not empty, put it in a [params] array.</span></div>
|
||||
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>  <span class="keywordflow">if</span> (paramsObj.begin() != paramsObj.end())</div>
|
||||
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>  {</div>
|
||||
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>  <span class="keyword">auto</span>& paramsArray = <a class="code" href="namespaceJson.html#a844d3d2c97ae1bafd1faa5a1f408514b">Json::setArray</a>(jv, jss::params);</div>
|
||||
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>  paramsArray.append(paramsObj);</div>
|
||||
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>  }</div>
|
||||
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>  <span class="keywordflow">if</span> (paramsObj.isMember(jss::jsonrpc))</div>
|
||||
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>  jv[jss::jsonrpc] = paramsObj[jss::jsonrpc];</div>
|
||||
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>  <span class="keywordflow">if</span> (paramsObj.isMember(jss::ripplerpc))</div>
|
||||
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>  jv[jss::ripplerpc] = paramsObj[jss::ripplerpc];</div>
|
||||
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>  <span class="keywordflow">if</span> (paramsObj.isMember(jss::id))</div>
|
||||
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>  jv[jss::id] = paramsObj[jss::id];</div>
|
||||
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>  <span class="keywordflow">return</span> jv;</div>
|
||||
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> }</div>
|
||||
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>  </div>
|
||||
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>  </div>
|
||||
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair<int, Json::Value></a></div>
|
||||
<div class="line"><a name="l01530"></a><span class="lineno"><a class="line" href="namespaceripple.html#a425645d42dd2466ffc69e73fc6861b3d"> 1530</a></span> <a class="code" href="namespaceripple.html#a425645d42dd2466ffc69e73fc6861b3d">rpcClient</a>(</div>
|
||||
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::string></a> <span class="keyword">const</span>& args,</div>
|
||||
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>  <a class="code" href="classripple_1_1Config.html">Config</a> <span class="keyword">const</span>& config,</div>
|
||||
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>  <a class="code" href="classripple_1_1Logs.html">Logs</a>& logs,</div>
|
||||
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map<std::string, std::string></a> <span class="keyword">const</span>& headers)</div>
|
||||
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> {</div>
|
||||
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>  static_assert(</div>
|
||||
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>  <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a89a147d7376535a497c85024dabc9167">rpcBAD_SYNTAX</a> == 1 && <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a6f69b339743d28bbc421fa3b31437173">rpcSUCCESS</a> == 0,</div>
|
||||
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>  <span class="stringliteral">"Expect specific rpc enum values."</span>);</div>
|
||||
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>  <span class="keywordflow">if</span> (args.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/empty.html">empty</a>())</div>
|
||||
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>  <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a89a147d7376535a497c85024dabc9167">rpcBAD_SYNTAX</a>, {}}; <span class="comment">// rpcBAD_SYNTAX = print usage</span></div>
|
||||
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>  <span class="comment">// Allow parser to rewrite method.</span></div>
|
||||
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>  jv[jss::method] = paramsObj.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::method)</div>
|
||||
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>  ? paramsObj[jss::method].asString()</div>
|
||||
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>  : args[0];</div>
|
||||
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>  </div>
|
||||
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>  <span class="comment">// If paramsObj is not empty, put it in a [params] array.</span></div>
|
||||
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>  <span class="keywordflow">if</span> (paramsObj.begin() != paramsObj.end())</div>
|
||||
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>  {</div>
|
||||
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>  <span class="keyword">auto</span>& paramsArray = <a class="code" href="namespaceJson.html#a844d3d2c97ae1bafd1faa5a1f408514b">Json::setArray</a>(jv, jss::params);</div>
|
||||
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>  paramsArray.append(paramsObj);</div>
|
||||
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>  }</div>
|
||||
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>  <span class="keywordflow">if</span> (paramsObj.isMember(jss::jsonrpc))</div>
|
||||
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>  jv[jss::jsonrpc] = paramsObj[jss::jsonrpc];</div>
|
||||
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>  <span class="keywordflow">if</span> (paramsObj.isMember(jss::ripplerpc))</div>
|
||||
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>  jv[jss::ripplerpc] = paramsObj[jss::ripplerpc];</div>
|
||||
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>  <span class="keywordflow">if</span> (paramsObj.isMember(jss::id))</div>
|
||||
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>  jv[jss::id] = paramsObj[jss::id];</div>
|
||||
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>  <span class="keywordflow">return</span> jv;</div>
|
||||
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> }</div>
|
||||
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>  </div>
|
||||
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>  </div>
|
||||
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair<int, Json::Value></a></div>
|
||||
<div class="line"><a name="l01521"></a><span class="lineno"><a class="line" href="namespaceripple.html#a425645d42dd2466ffc69e73fc6861b3d"> 1521</a></span> <a class="code" href="namespaceripple.html#a425645d42dd2466ffc69e73fc6861b3d">rpcClient</a>(</div>
|
||||
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::string></a> <span class="keyword">const</span>& args,</div>
|
||||
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>  <a class="code" href="classripple_1_1Config.html">Config</a> <span class="keyword">const</span>& config,</div>
|
||||
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>  <a class="code" href="classripple_1_1Logs.html">Logs</a>& logs,</div>
|
||||
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map<std::string, std::string></a> <span class="keyword">const</span>& headers)</div>
|
||||
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> {</div>
|
||||
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>  static_assert(</div>
|
||||
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>  <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a89a147d7376535a497c85024dabc9167">rpcBAD_SYNTAX</a> == 1 && <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a6f69b339743d28bbc421fa3b31437173">rpcSUCCESS</a> == 0,</div>
|
||||
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>  <span class="stringliteral">"Expect specific rpc enum values."</span>);</div>
|
||||
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>  <span class="keywordflow">if</span> (args.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/empty.html">empty</a>())</div>
|
||||
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>  <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a89a147d7376535a497c85024dabc9167">rpcBAD_SYNTAX</a>, {}}; <span class="comment">// rpcBAD_SYNTAX = print usage</span></div>
|
||||
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>  </div>
|
||||
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>  <span class="keywordtype">int</span> nRet = <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a6f69b339743d28bbc421fa3b31437173">rpcSUCCESS</a>;</div>
|
||||
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvOutput;</div>
|
||||
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvRequest(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>  </div>
|
||||
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>  {</div>
|
||||
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvRpc = <a class="code" href="classJson_1_1Value.html">Json::Value</a>(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>  jvRequest = <a class="code" href="namespaceripple.html#ab72afa7b2b33324b108c550dbc0a3c1f">rpcCmdLineToJson</a>(args, jvRpc, logs.<a class="code" href="classripple_1_1Logs.html#a725d5db842b36c748bd9da3401da3128">journal</a>(<span class="stringliteral">"RPCParser"</span>));</div>
|
||||
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>  </div>
|
||||
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>  <span class="keywordtype">int</span> nRet = <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a6f69b339743d28bbc421fa3b31437173">rpcSUCCESS</a>;</div>
|
||||
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvOutput;</div>
|
||||
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvRequest(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>  </div>
|
||||
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>  {</div>
|
||||
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvRpc = <a class="code" href="classJson_1_1Value.html">Json::Value</a>(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
|
||||
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>  jvRequest = <a class="code" href="namespaceripple.html#ab72afa7b2b33324b108c550dbc0a3c1f">rpcCmdLineToJson</a>(args, jvRpc, logs.<a class="code" href="classripple_1_1Logs.html#a725d5db842b36c748bd9da3401da3128">journal</a>(<span class="stringliteral">"RPCParser"</span>));</div>
|
||||
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>  </div>
|
||||
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>  <span class="keywordflow">if</span> (jvRequest.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::error))</div>
|
||||
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>  {</div>
|
||||
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>  jvOutput = jvRequest;</div>
|
||||
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>  jvOutput[<span class="stringliteral">"rpc"</span>] = jvRpc;</div>
|
||||
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  }</div>
|
||||
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>  {</div>
|
||||
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>  <a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html">ServerHandler::Setup</a> setup;</div>
|
||||
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  {</div>
|
||||
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>  setup = <a class="code" href="namespaceripple.html#a9717a8236d67d262b4e5273712ac545c">setup_ServerHandler</a>(</div>
|
||||
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>  config,</div>
|
||||
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>  <a class="code" href="classbeast_1_1basic__logstream.html">beast::logstream</a>{logs.<a class="code" href="classripple_1_1Logs.html#a725d5db842b36c748bd9da3401da3128">journal</a>(<span class="stringliteral">"HTTPClient"</span>).warn()});</div>
|
||||
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>  }</div>
|
||||
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>  <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&)</div>
|
||||
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>  {</div>
|
||||
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>  <span class="comment">// ignore any exceptions, so the command</span></div>
|
||||
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>  <span class="comment">// line client works without a config file</span></div>
|
||||
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>  }</div>
|
||||
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>  </div>
|
||||
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>  <span class="keywordflow">if</span> (config.<a class="code" href="classripple_1_1Config.html#a568c380fe9c0a28afc8b09ab9174c864">rpc_ip</a>)</div>
|
||||
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>  {</div>
|
||||
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a1cfba82de3995bc70e297f18eee2dcef">ip</a> = config.<a class="code" href="classripple_1_1Config.html#a568c380fe9c0a28afc8b09ab9174c864">rpc_ip</a>->address().to_string();</div>
|
||||
<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a71b103879153f77cac77ef88f3d3fb81">port</a> = config.<a class="code" href="classripple_1_1Config.html#a568c380fe9c0a28afc8b09ab9174c864">rpc_ip</a>->port();</div>
|
||||
<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>  }</div>
|
||||
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>  </div>
|
||||
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a>);</div>
|
||||
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>  </div>
|
||||
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>  <span class="keywordflow">if</span> (!setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a407fa705ff2453644d66ff9236124043">admin_user</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
|
||||
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>  jvRequest[<span class="stringliteral">"admin_user"</span>] = setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a407fa705ff2453644d66ff9236124043">admin_user</a>;</div>
|
||||
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  </div>
|
||||
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>  <span class="keywordflow">if</span> (!setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a34a533292e151fe67b0daa142369841f">admin_password</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
|
||||
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  jvRequest[<span class="stringliteral">"admin_password"</span>] = setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a34a533292e151fe67b0daa142369841f">admin_password</a>;</div>
|
||||
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>  </div>
|
||||
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>  <span class="keywordflow">if</span> (jvRequest.<a class="code" href="classJson_1_1Value.html#a8cf96c0f2a552051fcfc78ffee60e037">isObject</a>())</div>
|
||||
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>  jvParams.<a class="code" href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">append</a>(jvRequest);</div>
|
||||
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (jvRequest.<a class="code" href="classJson_1_1Value.html#a1627eb9d6568d6d0252fa8bb711c0a59">isArray</a>())</div>
|
||||
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>  {</div>
|
||||
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceJson.html#ab1488c31a37eea2d37f36a0961372572">Json::UInt</a> i = 0; i < jvRequest.<a class="code" href="classJson_1_1Value.html#a23c7027ca674f989f90564d63ef36c74">size</a>(); ++i)</div>
|
||||
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>  jvParams.<a class="code" href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">append</a>(jvRequest[i]);</div>
|
||||
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>  }</div>
|
||||
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  </div>
|
||||
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>  {</div>
|
||||
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  boost::asio::io_service isService;</div>
|
||||
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  <a class="code" href="namespaceripple_1_1RPCCall.html#a9817ac845ca5041cf35be3ef4750a9f2">RPCCall::fromNetwork</a>(</div>
|
||||
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  isService,</div>
|
||||
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a1cfba82de3995bc70e297f18eee2dcef">ip</a>,</div>
|
||||
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a71b103879153f77cac77ef88f3d3fb81">port</a>,</div>
|
||||
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a5bb3e4c3f647d26ffc9bdeb011c776f8">user</a>,</div>
|
||||
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#adae7271497ad30628f2c5d7ffbca9672">password</a>,</div>
|
||||
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  <span class="stringliteral">""</span>,</div>
|
||||
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  jvRequest.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(</div>
|
||||
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>  jss::method) <span class="comment">// Allow parser to rewrite method.</span></div>
|
||||
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>  ? jvRequest[jss::method].<a class="code" href="classJson_1_1Value.html#ab0d86bf425efefd03513e8dbfaca317b">asString</a>()</div>
|
||||
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>  : jvRequest.<a class="code" href="classJson_1_1Value.html#a1627eb9d6568d6d0252fa8bb711c0a59">isArray</a>() ? <span class="stringliteral">"batch"</span> : args[0],</div>
|
||||
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  jvParams, <span class="comment">// Parsed, execute.</span></div>
|
||||
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a44fccc2b575144cf16688e0510446bd4">secure</a> != 0, <span class="comment">// Use SSL</span></div>
|
||||
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  config.<a class="code" href="classripple_1_1Config.html#a9162d3ba9894fc8eb804f573cc631dad">quiet</a>(),</div>
|
||||
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>  logs,</div>
|
||||
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/bind.html">std::bind</a>(</div>
|
||||
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>  <a class="code" href="structripple_1_1RPCCallImp.html#a0d0dc01bdca432ac14e8c67728199fb4">RPCCallImp::callRPCHandler</a>,</div>
|
||||
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>  &jvOutput,</div>
|
||||
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>  std::placeholders::_1),</div>
|
||||
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>  headers);</div>
|
||||
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>  isService.run(); <span class="comment">// This blocks until there are no more</span></div>
|
||||
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>  <span class="comment">// outstanding async calls.</span></div>
|
||||
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>  }</div>
|
||||
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  <span class="keywordflow">if</span> (jvOutput.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(<span class="stringliteral">"result"</span>))</div>
|
||||
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>  {</div>
|
||||
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>  <span class="comment">// Had a successful JSON-RPC 2.0 call.</span></div>
|
||||
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  jvOutput = jvOutput[<span class="stringliteral">"result"</span>];</div>
|
||||
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  </div>
|
||||
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>  <span class="comment">// jvOutput may report a server side error.</span></div>
|
||||
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>  <span class="comment">// It should report "status".</span></div>
|
||||
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>  }</div>
|
||||
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  {</div>
|
||||
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>  <span class="comment">// Transport error.</span></div>
|
||||
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvRpcError = jvOutput;</div>
|
||||
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>  </div>
|
||||
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>  jvOutput = <a class="code" href="namespaceripple.html#a67869382f83fd55cf3096d2591a57b07">rpcError</a>(<a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932ac1a6dff600f246dd125ce9d6d02eeeba">rpcJSON_RPC</a>);</div>
|
||||
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>  jvOutput[<span class="stringliteral">"result"</span>] = jvRpcError;</div>
|
||||
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>  <span class="keywordflow">if</span> (jvRequest.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::error))</div>
|
||||
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>  {</div>
|
||||
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>  jvOutput = jvRequest;</div>
|
||||
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>  jvOutput[<span class="stringliteral">"rpc"</span>] = jvRpc;</div>
|
||||
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>  }</div>
|
||||
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  {</div>
|
||||
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>  <a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html">ServerHandler::Setup</a> setup;</div>
|
||||
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>  {</div>
|
||||
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>  setup = <a class="code" href="namespaceripple.html#a9717a8236d67d262b4e5273712ac545c">setup_ServerHandler</a>(</div>
|
||||
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>  config,</div>
|
||||
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>  <a class="code" href="classbeast_1_1basic__logstream.html">beast::logstream</a>{logs.<a class="code" href="classripple_1_1Logs.html#a725d5db842b36c748bd9da3401da3128">journal</a>(<span class="stringliteral">"HTTPClient"</span>).warn()});</div>
|
||||
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  }</div>
|
||||
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>  <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&)</div>
|
||||
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>  {</div>
|
||||
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>  <span class="comment">// ignore any exceptions, so the command</span></div>
|
||||
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>  <span class="comment">// line client works without a config file</span></div>
|
||||
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  }</div>
|
||||
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>  </div>
|
||||
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>  <span class="keywordflow">if</span> (config.<a class="code" href="classripple_1_1Config.html#a568c380fe9c0a28afc8b09ab9174c864">rpc_ip</a>)</div>
|
||||
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>  {</div>
|
||||
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a1cfba82de3995bc70e297f18eee2dcef">ip</a> = config.<a class="code" href="classripple_1_1Config.html#a568c380fe9c0a28afc8b09ab9174c864">rpc_ip</a>->address().to_string();</div>
|
||||
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a71b103879153f77cac77ef88f3d3fb81">port</a> = config.<a class="code" href="classripple_1_1Config.html#a568c380fe9c0a28afc8b09ab9174c864">rpc_ip</a>->port();</div>
|
||||
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>  }</div>
|
||||
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>  </div>
|
||||
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a>);</div>
|
||||
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>  </div>
|
||||
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>  <span class="keywordflow">if</span> (!setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a407fa705ff2453644d66ff9236124043">admin_user</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
|
||||
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>  jvRequest[<span class="stringliteral">"admin_user"</span>] = setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a407fa705ff2453644d66ff9236124043">admin_user</a>;</div>
|
||||
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>  </div>
|
||||
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>  <span class="keywordflow">if</span> (!setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a34a533292e151fe67b0daa142369841f">admin_password</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
|
||||
<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>  jvRequest[<span class="stringliteral">"admin_password"</span>] = setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a34a533292e151fe67b0daa142369841f">admin_password</a>;</div>
|
||||
<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>  </div>
|
||||
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>  <span class="keywordflow">if</span> (jvRequest.<a class="code" href="classJson_1_1Value.html#a8cf96c0f2a552051fcfc78ffee60e037">isObject</a>())</div>
|
||||
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>  jvParams.<a class="code" href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">append</a>(jvRequest);</div>
|
||||
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (jvRequest.<a class="code" href="classJson_1_1Value.html#a1627eb9d6568d6d0252fa8bb711c0a59">isArray</a>())</div>
|
||||
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>  {</div>
|
||||
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceJson.html#ab1488c31a37eea2d37f36a0961372572">Json::UInt</a> i = 0; i < jvRequest.<a class="code" href="classJson_1_1Value.html#a23c7027ca674f989f90564d63ef36c74">size</a>(); ++i)</div>
|
||||
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  jvParams.<a class="code" href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">append</a>(jvRequest[i]);</div>
|
||||
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>  }</div>
|
||||
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  </div>
|
||||
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>  {</div>
|
||||
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>  boost::asio::io_service isService;</div>
|
||||
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>  <a class="code" href="namespaceripple_1_1RPCCall.html#a9817ac845ca5041cf35be3ef4750a9f2">RPCCall::fromNetwork</a>(</div>
|
||||
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>  isService,</div>
|
||||
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a1cfba82de3995bc70e297f18eee2dcef">ip</a>,</div>
|
||||
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a71b103879153f77cac77ef88f3d3fb81">port</a>,</div>
|
||||
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a5bb3e4c3f647d26ffc9bdeb011c776f8">user</a>,</div>
|
||||
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#adae7271497ad30628f2c5d7ffbca9672">password</a>,</div>
|
||||
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  <span class="stringliteral">""</span>,</div>
|
||||
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>  jvRequest.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(</div>
|
||||
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  jss::method) <span class="comment">// Allow parser to rewrite method.</span></div>
|
||||
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  ? jvRequest[jss::method].<a class="code" href="classJson_1_1Value.html#ab0d86bf425efefd03513e8dbfaca317b">asString</a>()</div>
|
||||
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  : jvRequest.<a class="code" href="classJson_1_1Value.html#a1627eb9d6568d6d0252fa8bb711c0a59">isArray</a>() ? <span class="stringliteral">"batch"</span> : args[0],</div>
|
||||
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  jvParams, <span class="comment">// Parsed, execute.</span></div>
|
||||
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  setup.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">client</a>.<a class="code" href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a44fccc2b575144cf16688e0510446bd4">secure</a> != 0, <span class="comment">// Use SSL</span></div>
|
||||
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  config.<a class="code" href="classripple_1_1Config.html#a9162d3ba9894fc8eb804f573cc631dad">quiet</a>(),</div>
|
||||
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>  logs,</div>
|
||||
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/bind.html">std::bind</a>(</div>
|
||||
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  <a class="code" href="structripple_1_1RPCCallImp.html#a0d0dc01bdca432ac14e8c67728199fb4">RPCCallImp::callRPCHandler</a>,</div>
|
||||
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>  &jvOutput,</div>
|
||||
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>  std::placeholders::_1),</div>
|
||||
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>  headers);</div>
|
||||
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  isService.run(); <span class="comment">// This blocks until there are no more</span></div>
|
||||
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  <span class="comment">// outstanding async calls.</span></div>
|
||||
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  }</div>
|
||||
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>  <span class="keywordflow">if</span> (jvOutput.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(<span class="stringliteral">"result"</span>))</div>
|
||||
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>  {</div>
|
||||
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>  <span class="comment">// Had a successful JSON-RPC 2.0 call.</span></div>
|
||||
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>  jvOutput = jvOutput[<span class="stringliteral">"result"</span>];</div>
|
||||
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>  </div>
|
||||
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>  <span class="comment">// jvOutput may report a server side error.</span></div>
|
||||
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>  <span class="comment">// It should report "status".</span></div>
|
||||
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>  }</div>
|
||||
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  {</div>
|
||||
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>  <span class="comment">// Transport error.</span></div>
|
||||
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvRpcError = jvOutput;</div>
|
||||
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  </div>
|
||||
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  jvOutput = <a class="code" href="namespaceripple.html#a67869382f83fd55cf3096d2591a57b07">rpcError</a>(<a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932ac1a6dff600f246dd125ce9d6d02eeeba">rpcJSON_RPC</a>);</div>
|
||||
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>  jvOutput[<span class="stringliteral">"result"</span>] = jvRpcError;</div>
|
||||
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>  }</div>
|
||||
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>  </div>
|
||||
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  <span class="comment">// If had an error, supply invocation in result.</span></div>
|
||||
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  <span class="keywordflow">if</span> (jvOutput.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::error))</div>
|
||||
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>  {</div>
|
||||
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>  jvOutput[<span class="stringliteral">"rpc"</span>] =</div>
|
||||
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>  jvRpc; <span class="comment">// How the command was seen as method + params.</span></div>
|
||||
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>  jvOutput[<span class="stringliteral">"request_sent"</span>] =</div>
|
||||
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>  jvRequest; <span class="comment">// How the command was translated.</span></div>
|
||||
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>  }</div>
|
||||
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  </div>
|
||||
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>  <span class="comment">// If had an error, supply invocation in result.</span></div>
|
||||
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>  <span class="keywordflow">if</span> (jvOutput.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::error))</div>
|
||||
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>  {</div>
|
||||
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>  jvOutput[<span class="stringliteral">"rpc"</span>] =</div>
|
||||
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>  jvRpc; <span class="comment">// How the command was seen as method + params.</span></div>
|
||||
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>  jvOutput[<span class="stringliteral">"request_sent"</span>] =</div>
|
||||
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  jvRequest; <span class="comment">// How the command was translated.</span></div>
|
||||
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  }</div>
|
||||
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>  }</div>
|
||||
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>  </div>
|
||||
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>  <span class="keywordflow">if</span> (jvOutput.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::error))</div>
|
||||
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  {</div>
|
||||
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>  jvOutput[jss::status] = <span class="stringliteral">"error"</span>;</div>
|
||||
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>  <span class="keywordflow">if</span> (jvOutput.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::error_code))</div>
|
||||
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>  nRet = <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/stol.html">std::stoi</a>(jvOutput[jss::error_code].asString());</div>
|
||||
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (jvOutput[jss::error].isMember(jss::error_code))</div>
|
||||
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>  nRet =</div>
|
||||
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/stol.html">std::stoi</a>(jvOutput[jss::error][jss::error_code].asString());</div>
|
||||
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  nRet = <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a89a147d7376535a497c85024dabc9167">rpcBAD_SYNTAX</a>;</div>
|
||||
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>  }</div>
|
||||
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>  </div>
|
||||
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>  <span class="comment">// YYY We could have a command line flag for single line output for</span></div>
|
||||
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>  <span class="comment">// scripts. YYY We would intercept output here and simplify it.</span></div>
|
||||
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>  }</div>
|
||||
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>  <span class="keywordflow">catch</span> (RequestNotParseable& e)</div>
|
||||
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>  {</div>
|
||||
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>  jvOutput = <a class="code" href="namespaceripple.html#a67869382f83fd55cf3096d2591a57b07">rpcError</a>(<a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a82ddebc5ec7a37ff38892487277bf9c4">rpcINVALID_PARAMS</a>);</div>
|
||||
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>  jvOutput[<span class="stringliteral">"error_what"</span>] = e.what();</div>
|
||||
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>  nRet = <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a82ddebc5ec7a37ff38892487277bf9c4">rpcINVALID_PARAMS</a>;</div>
|
||||
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>  }</div>
|
||||
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>  <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a>& e)</div>
|
||||
<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>  {</div>
|
||||
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>  jvOutput = <a class="code" href="namespaceripple.html#a67869382f83fd55cf3096d2591a57b07">rpcError</a>(<a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a839833d48b635d8df6a9176274ae922f">rpcINTERNAL</a>);</div>
|
||||
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>  jvOutput[<span class="stringliteral">"error_what"</span>] = e.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
|
||||
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>  nRet = <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a839833d48b635d8df6a9176274ae922f">rpcINTERNAL</a>;</div>
|
||||
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>  }</div>
|
||||
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>  </div>
|
||||
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>  <span class="keywordflow">return</span> {nRet, std::move(jvOutput)};</div>
|
||||
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> }</div>
|
||||
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>  </div>
|
||||
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>  </div>
|
||||
<div class="line"><a name="l01678"></a><span class="lineno"><a class="line" href="namespaceripple_1_1RPCCall.html"> 1678</a></span> <span class="keyword">namespace </span>RPCCall {</div>
|
||||
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>  </div>
|
||||
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> <span class="keywordtype">int</span></div>
|
||||
<div class="line"><a name="l01681"></a><span class="lineno"><a class="line" href="namespaceripple_1_1RPCCall.html#a1a95d65d49327d8f4cc8c1bf142cc0eb"> 1681</a></span> <a class="code" href="namespaceripple_1_1RPCCall.html#a1a95d65d49327d8f4cc8c1bf142cc0eb">fromCommandLine</a>(</div>
|
||||
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>  <a class="code" href="classripple_1_1Config.html">Config</a> <span class="keyword">const</span>& config,</div>
|
||||
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>  <span class="keyword">const</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::string></a>& vCmd,</div>
|
||||
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>  <a class="code" href="classripple_1_1Logs.html">Logs</a>& logs)</div>
|
||||
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> {</div>
|
||||
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>  <span class="keyword">auto</span> <span class="keyword">const</span> result = <a class="code" href="namespaceripple.html#a425645d42dd2466ffc69e73fc6861b3d">rpcClient</a>(vCmd, config, logs);</div>
|
||||
<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>  </div>
|
||||
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/cout.html">std::cout</a> << result.second.toStyledString();</div>
|
||||
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  </div>
|
||||
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>  <span class="keywordflow">return</span> result.first;</div>
|
||||
<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> }</div>
|
||||
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  </div>
|
||||
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>  </div>
|
||||
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01696"></a><span class="lineno"><a class="line" href="namespaceripple_1_1RPCCall.html#a9817ac845ca5041cf35be3ef4750a9f2"> 1696</a></span> <a class="code" href="namespaceripple_1_1RPCCall.html#a9817ac845ca5041cf35be3ef4750a9f2">fromNetwork</a>(</div>
|
||||
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>  boost::asio::io_service& io_service,</div>
|
||||
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strIp,</div>
|
||||
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>  <span class="keyword">const</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> iPort,</div>
|
||||
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strUsername,</div>
|
||||
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strPassword,</div>
|
||||
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strPath,</div>
|
||||
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strMethod,</div>
|
||||
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> <span class="keyword">const</span>& jvParams,</div>
|
||||
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> bSSL,</div>
|
||||
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> quiet,</div>
|
||||
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>  <a class="code" href="classripple_1_1Logs.html">Logs</a>& logs,</div>
|
||||
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a><<span class="keywordtype">void</span>(<a class="code" href="classJson_1_1Value.html">Json::Value</a> <span class="keyword">const</span>& jvInput)> callbackFuncP,</div>
|
||||
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map<std::string, std::string></a> headers)</div>
|
||||
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> {</div>
|
||||
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>  <span class="keyword">auto</span> j = logs.<a class="code" href="classripple_1_1Logs.html#a725d5db842b36c748bd9da3401da3128">journal</a>(<span class="stringliteral">"HTTPClient"</span>);</div>
|
||||
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>  </div>
|
||||
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>  <span class="comment">// Connect to localhost</span></div>
|
||||
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>  <span class="keywordflow">if</span> (!quiet)</div>
|
||||
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>  {</div>
|
||||
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>  JLOG(j.info()) << (bSSL ? <span class="stringliteral">"Securely connecting to "</span> : <span class="stringliteral">"Connecting to "</span>)</div>
|
||||
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>  << strIp << <span class="stringliteral">":"</span> << iPort << <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>  }</div>
|
||||
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>  </div>
|
||||
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>  <span class="comment">// HTTP basic authentication</span></div>
|
||||
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>  headers[<span class="stringliteral">"Authorization"</span>] =</div>
|
||||
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>(<span class="stringliteral">"Basic "</span>) + <a class="code" href="namespaceripple.html#a9e4e400df889dc7cb9df0f859a8e4f18">base64_encode</a>(strUsername + <span class="stringliteral">":"</span> + strPassword);</div>
|
||||
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  }</div>
|
||||
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>  </div>
|
||||
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>  <span class="keywordflow">if</span> (jvOutput.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::error))</div>
|
||||
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>  {</div>
|
||||
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>  jvOutput[jss::status] = <span class="stringliteral">"error"</span>;</div>
|
||||
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>  <span class="keywordflow">if</span> (jvOutput.<a class="code" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::error_code))</div>
|
||||
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>  nRet = <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/stol.html">std::stoi</a>(jvOutput[jss::error_code].asString());</div>
|
||||
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (jvOutput[jss::error].isMember(jss::error_code))</div>
|
||||
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  nRet =</div>
|
||||
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/stol.html">std::stoi</a>(jvOutput[jss::error][jss::error_code].asString());</div>
|
||||
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>  nRet = <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a89a147d7376535a497c85024dabc9167">rpcBAD_SYNTAX</a>;</div>
|
||||
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  }</div>
|
||||
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>  </div>
|
||||
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>  <span class="comment">// YYY We could have a command line flag for single line output for</span></div>
|
||||
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>  <span class="comment">// scripts. YYY We would intercept output here and simplify it.</span></div>
|
||||
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>  }</div>
|
||||
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>  <span class="keywordflow">catch</span> (RequestNotParseable& e)</div>
|
||||
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>  {</div>
|
||||
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  jvOutput = <a class="code" href="namespaceripple.html#a67869382f83fd55cf3096d2591a57b07">rpcError</a>(<a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a82ddebc5ec7a37ff38892487277bf9c4">rpcINVALID_PARAMS</a>);</div>
|
||||
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  jvOutput[<span class="stringliteral">"error_what"</span>] = e.what();</div>
|
||||
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>  nRet = <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a82ddebc5ec7a37ff38892487277bf9c4">rpcINVALID_PARAMS</a>;</div>
|
||||
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>  }</div>
|
||||
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>  <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a>& e)</div>
|
||||
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>  {</div>
|
||||
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>  jvOutput = <a class="code" href="namespaceripple.html#a67869382f83fd55cf3096d2591a57b07">rpcError</a>(<a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a839833d48b635d8df6a9176274ae922f">rpcINTERNAL</a>);</div>
|
||||
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>  jvOutput[<span class="stringliteral">"error_what"</span>] = e.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
|
||||
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>  nRet = <a class="code" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a839833d48b635d8df6a9176274ae922f">rpcINTERNAL</a>;</div>
|
||||
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>  }</div>
|
||||
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>  </div>
|
||||
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>  <span class="keywordflow">return</span> {nRet, std::move(jvOutput)};</div>
|
||||
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> }</div>
|
||||
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>  </div>
|
||||
<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>  </div>
|
||||
<div class="line"><a name="l01669"></a><span class="lineno"><a class="line" href="namespaceripple_1_1RPCCall.html"> 1669</a></span> <span class="keyword">namespace </span>RPCCall {</div>
|
||||
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>  </div>
|
||||
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> <span class="keywordtype">int</span></div>
|
||||
<div class="line"><a name="l01672"></a><span class="lineno"><a class="line" href="namespaceripple_1_1RPCCall.html#a1a95d65d49327d8f4cc8c1bf142cc0eb"> 1672</a></span> <a class="code" href="namespaceripple_1_1RPCCall.html#a1a95d65d49327d8f4cc8c1bf142cc0eb">fromCommandLine</a>(</div>
|
||||
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>  <a class="code" href="classripple_1_1Config.html">Config</a> <span class="keyword">const</span>& config,</div>
|
||||
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>  <span class="keyword">const</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::string></a>& vCmd,</div>
|
||||
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>  <a class="code" href="classripple_1_1Logs.html">Logs</a>& logs)</div>
|
||||
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> {</div>
|
||||
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>  <span class="keyword">auto</span> <span class="keyword">const</span> result = <a class="code" href="namespaceripple.html#a425645d42dd2466ffc69e73fc6861b3d">rpcClient</a>(vCmd, config, logs);</div>
|
||||
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>  </div>
|
||||
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/cout.html">std::cout</a> << result.second.toStyledString();</div>
|
||||
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>  </div>
|
||||
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>  <span class="keywordflow">return</span> result.first;</div>
|
||||
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> }</div>
|
||||
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>  </div>
|
||||
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>  </div>
|
||||
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01687"></a><span class="lineno"><a class="line" href="namespaceripple_1_1RPCCall.html#a9817ac845ca5041cf35be3ef4750a9f2"> 1687</a></span> <a class="code" href="namespaceripple_1_1RPCCall.html#a9817ac845ca5041cf35be3ef4750a9f2">fromNetwork</a>(</div>
|
||||
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>  boost::asio::io_service& io_service,</div>
|
||||
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strIp,</div>
|
||||
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>  <span class="keyword">const</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> iPort,</div>
|
||||
<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strUsername,</div>
|
||||
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strPassword,</div>
|
||||
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strPath,</div>
|
||||
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& strMethod,</div>
|
||||
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> <span class="keyword">const</span>& jvParams,</div>
|
||||
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> bSSL,</div>
|
||||
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> quiet,</div>
|
||||
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>  <a class="code" href="classripple_1_1Logs.html">Logs</a>& logs,</div>
|
||||
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a><<span class="keywordtype">void</span>(<a class="code" href="classJson_1_1Value.html">Json::Value</a> <span class="keyword">const</span>& jvInput)> callbackFuncP,</div>
|
||||
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map<std::string, std::string></a> headers)</div>
|
||||
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span> {</div>
|
||||
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>  <span class="keyword">auto</span> j = logs.<a class="code" href="classripple_1_1Logs.html#a725d5db842b36c748bd9da3401da3128">journal</a>(<span class="stringliteral">"HTTPClient"</span>);</div>
|
||||
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>  </div>
|
||||
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>  <span class="comment">// Connect to localhost</span></div>
|
||||
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>  <span class="keywordflow">if</span> (!quiet)</div>
|
||||
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>  {</div>
|
||||
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>  JLOG(j.info()) << (bSSL ? <span class="stringliteral">"Securely connecting to "</span> : <span class="stringliteral">"Connecting to "</span>)</div>
|
||||
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>  << strIp << <span class="stringliteral">":"</span> << iPort << <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>  }</div>
|
||||
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>  </div>
|
||||
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>  <span class="comment">// HTTP basic authentication</span></div>
|
||||
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>  headers[<span class="stringliteral">"Authorization"</span>] =</div>
|
||||
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>(<span class="stringliteral">"Basic "</span>) + <a class="code" href="namespaceripple.html#a9e4e400df889dc7cb9df0f859a8e4f18">base64_encode</a>(strUsername + <span class="stringliteral">":"</span> + strPassword);</div>
|
||||
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>  </div>
|
||||
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>  <span class="comment">// Send request</span></div>
|
||||
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>  </div>
|
||||
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>  <span class="comment">// Number of bytes to try to receive if no</span></div>
|
||||
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>  <span class="comment">// Content-Length header received</span></div>
|
||||
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>  constexpr <span class="keyword">auto</span> RPC_REPLY_MAX_BYTES = <a class="code" href="namespaceripple.html#a13d7c6c34d30731bbc221f629e03f8db">megabytes</a>(256);</div>
|
||||
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>  </div>
|
||||
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>  <span class="keyword">using namespace </span>std::chrono_literals;</div>
|
||||
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>  <span class="keyword">auto</span> constexpr RPC_NOTIFY = 10min;</div>
|
||||
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>  </div>
|
||||
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>  <span class="comment">// Send request</span></div>
|
||||
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>  </div>
|
||||
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>  <span class="comment">// Number of bytes to try to receive if no</span></div>
|
||||
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>  <span class="comment">// Content-Length header received</span></div>
|
||||
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>  constexpr <span class="keyword">auto</span> RPC_REPLY_MAX_BYTES = <a class="code" href="namespaceripple.html#a13d7c6c34d30731bbc221f629e03f8db">megabytes</a>(256);</div>
|
||||
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>  </div>
|
||||
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>  <span class="keyword">using namespace </span>std::chrono_literals;</div>
|
||||
<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>  <span class="keyword">auto</span> constexpr RPC_NOTIFY = 10min;</div>
|
||||
<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>  </div>
|
||||
<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>  <a class="code" href="classripple_1_1HTTPClient.html#a6655540e8a9d9255e16358b8edfeb9a5">HTTPClient::request</a>(</div>
|
||||
<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>  bSSL,</div>
|
||||
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>  io_service,</div>
|
||||
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>  strIp,</div>
|
||||
<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>  iPort,</div>
|
||||
<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/bind.html">std::bind</a>(</div>
|
||||
<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>  &<a class="code" href="structripple_1_1RPCCallImp.html#a932251660d12e31109ecaeb2b7a78ff8">RPCCallImp::onRequest</a>,</div>
|
||||
<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>  strMethod,</div>
|
||||
<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>  jvParams,</div>
|
||||
<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>  headers,</div>
|
||||
<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>  strPath,</div>
|
||||
<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>  std::placeholders::_1,</div>
|
||||
<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>  std::placeholders::_2,</div>
|
||||
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>  <a class="code" href="classripple_1_1HTTPClient.html#a6655540e8a9d9255e16358b8edfeb9a5">HTTPClient::request</a>(</div>
|
||||
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>  bSSL,</div>
|
||||
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>  io_service,</div>
|
||||
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>  strIp,</div>
|
||||
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>  iPort,</div>
|
||||
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/bind.html">std::bind</a>(</div>
|
||||
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>  &<a class="code" href="structripple_1_1RPCCallImp.html#a932251660d12e31109ecaeb2b7a78ff8">RPCCallImp::onRequest</a>,</div>
|
||||
<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>  strMethod,</div>
|
||||
<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>  jvParams,</div>
|
||||
<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>  headers,</div>
|
||||
<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>  strPath,</div>
|
||||
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>  std::placeholders::_1,</div>
|
||||
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>  std::placeholders::_2,</div>
|
||||
<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>  j),</div>
|
||||
<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>  RPC_REPLY_MAX_BYTES,</div>
|
||||
<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>  RPC_NOTIFY,</div>
|
||||
<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/bind.html">std::bind</a>(</div>
|
||||
<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>  &<a class="code" href="structripple_1_1RPCCallImp.html#ab7421486f8b9b70783fab86e3a4cd382">RPCCallImp::onResponse</a>,</div>
|
||||
<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>  callbackFuncP,</div>
|
||||
<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>  std::placeholders::_1,</div>
|
||||
<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>  std::placeholders::_2,</div>
|
||||
<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>  std::placeholders::_3,</div>
|
||||
<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>  j),</div>
|
||||
<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>  RPC_REPLY_MAX_BYTES,</div>
|
||||
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>  RPC_NOTIFY,</div>
|
||||
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/bind.html">std::bind</a>(</div>
|
||||
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>  &<a class="code" href="structripple_1_1RPCCallImp.html#ab7421486f8b9b70783fab86e3a4cd382">RPCCallImp::onResponse</a>,</div>
|
||||
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>  callbackFuncP,</div>
|
||||
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>  std::placeholders::_1,</div>
|
||||
<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>  std::placeholders::_2,</div>
|
||||
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>  std::placeholders::_3,</div>
|
||||
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>  j),</div>
|
||||
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>  j);</div>
|
||||
<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> }</div>
|
||||
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>  </div>
|
||||
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> } <span class="comment">// namespace RPCCall</span></div>
|
||||
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>  </div>
|
||||
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> } <span class="comment">// namespace ripple</span></div>
|
||||
<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>  j);</div>
|
||||
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> }</div>
|
||||
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>  </div>
|
||||
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> } <span class="comment">// namespace RPCCall</span></div>
|
||||
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>  </div>
|
||||
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> } <span class="comment">// namespace ripple</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_ab42eb3661c8c87fbc3ec71e1873b5f05"><div class="ttname"><a href="classripple_1_1RPCParser.html#ab42eb3661c8c87fbc3ec71e1873b5f05">ripple::RPCParser::parseAsIs</a></div><div class="ttdeci">Json::Value parseAsIs(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00175">RPCCall.cpp:175</a></div></div>
|
||||
<div class="ttc" id="afor_each_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/for_each.html">std::for_each</a></div><div class="ttdeci">T for_each(T... args)</div></div>
|
||||
@@ -1888,10 +1879,10 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_a7109c18d3a6300b7f95ae75866b0ac1c"><div class="ttname"><a href="classripple_1_1RPCParser.html#a7109c18d3a6300b7f95ae75866b0ac1c">ripple::RPCParser::j_</a></div><div class="ttdeci">const beast::Journal j_</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00094">RPCCall.cpp:94</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1ServerHandlerImp_1_1Setup_1_1client__t_html_a1cfba82de3995bc70e297f18eee2dcef"><div class="ttname"><a href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a1cfba82de3995bc70e297f18eee2dcef">ripple::ServerHandlerImp::Setup::client_t::ip</a></div><div class="ttdeci">std::string ip</div><div class="ttdef"><b>Definition:</b> <a href="ServerHandlerImp_8h_source.html#l00062">ServerHandlerImp.h:62</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_abae0be083a6bc346ed4974512761ae04"><div class="ttname"><a href="classripple_1_1RPCParser.html#abae0be083a6bc346ed4974512761ae04">ripple::RPCParser::parsePeerReservationsAdd</a></div><div class="ttdeci">Json::Value parsePeerReservationsAdd(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00950">RPCCall.cpp:950</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a9717a8236d67d262b4e5273712ac545c"><div class="ttname"><a href="namespaceripple.html#a9717a8236d67d262b4e5273712ac545c">ripple::setup_ServerHandler</a></div><div class="ttdeci">ServerHandler::Setup setup_ServerHandler(Config const &config, std::ostream &&log)</div><div class="ttdef"><b>Definition:</b> <a href="ServerHandlerImp_8cpp_source.html#l01211">ServerHandlerImp.cpp:1211</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a9717a8236d67d262b4e5273712ac545c"><div class="ttname"><a href="namespaceripple.html#a9717a8236d67d262b4e5273712ac545c">ripple::setup_ServerHandler</a></div><div class="ttdeci">ServerHandler::Setup setup_ServerHandler(Config const &config, std::ostream &&log)</div><div class="ttdef"><b>Definition:</b> <a href="ServerHandlerImp_8cpp_source.html#l01235">ServerHandlerImp.cpp:1235</a></div></div>
|
||||
<div class="ttc" id="acout_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/cout.html">std::cout</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_adc1f8a2c9b47d7c08e671ad3473e9d3a"><div class="ttname"><a href="namespaceripple.html#adc1f8a2c9b47d7c08e671ad3473e9d3a">ripple::publicKeyType</a></div><div class="ttdeci">std::optional< KeyType > publicKeyType(Slice const &slice)</div><div class="ttdoc">Returns the type of public key.</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8cpp_source.html#l00207">PublicKey.cpp:207</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1RPCCallImp_html_a932251660d12e31109ecaeb2b7a78ff8"><div class="ttname"><a href="structripple_1_1RPCCallImp.html#a932251660d12e31109ecaeb2b7a78ff8">ripple::RPCCallImp::onRequest</a></div><div class="ttdeci">static void onRequest(std::string const &strMethod, Json::Value const &jvParams, std::unordered_map< std::string, std::string > const &headers, std::string const &strPath, boost::asio::streambuf &sb, std::string const &strHost, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01437">RPCCall.cpp:1437</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1RPCCallImp_html_a932251660d12e31109ecaeb2b7a78ff8"><div class="ttname"><a href="structripple_1_1RPCCallImp.html#a932251660d12e31109ecaeb2b7a78ff8">ripple::RPCCallImp::onRequest</a></div><div class="ttdeci">static void onRequest(std::string const &strMethod, Json::Value const &jvParams, std::unordered_map< std::string, std::string > const &headers, std::string const &strPath, boost::asio::streambuf &sb, std::string const &strHost, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01428">RPCCall.cpp:1428</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1base__uint_html"><div class="ttname"><a href="classripple_1_1base__uint.html">ripple::base_uint< 256 ></a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_a2023851fe572d0076968093699975f87"><div class="ttname"><a href="classripple_1_1RPCParser.html#a2023851fe572d0076968093699975f87">ripple::RPCParser::parseGatewayBalances</a></div><div class="ttdeci">Json::Value parseGatewayBalances(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01152">RPCCall.cpp:1152</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a88ddae278aa600b476661629e3b930e8"><div class="ttname"><a href="namespaceripple.html#a88ddae278aa600b476661629e3b930e8">ripple::isRpcError</a></div><div class="ttdeci">bool isRpcError(Json::Value jvResult)</div><div class="ttdef"><b>Definition:</b> <a href="RPCErr_8cpp_source.html#l00038">RPCErr.cpp:38</a></div></div>
|
||||
@@ -1913,7 +1904,6 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_af9349d02dea03fedc423b13c5e7eb125"><div class="ttname"><a href="classripple_1_1RPCParser.html#af9349d02dea03fedc423b13c5e7eb125">ripple::RPCParser::parseTxAccount</a></div><div class="ttdeci">Json::Value parseTxAccount(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00340">RPCCall.cpp:340</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a32d6d3ce1a48272b677d2c88b1d30932a78e5ffef07cc85fedafde770039313bc"><div class="ttname"><a href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a78e5ffef07cc85fedafde770039313bc">ripple::rpcPUBLIC_MALFORMED</a></div><div class="ttdeci">@ rpcPUBLIC_MALFORMED</div><div class="ttdef"><b>Definition:</b> <a href="ErrorCodes_8h_source.html#l00117">ErrorCodes.h:117</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_aac9555946dbc143213074350544d23dd"><div class="ttname"><a href="classripple_1_1RPCParser.html#aac9555946dbc143213074350544d23dd">ripple::RPCParser::parseTx</a></div><div class="ttdeci">Json::Value parseTx(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01083">RPCCall.cpp:1083</a></div></div>
|
||||
<div class="ttc" id="ato_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a></div><div class="ttdeci">T to_string(T... args)</div></div>
|
||||
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/array.html">array</a></div></div>
|
||||
<div class="ttc" id="aclassJson_1_1Value_html_a23c7027ca674f989f90564d63ef36c74"><div class="ttname"><a href="classJson_1_1Value.html#a23c7027ca674f989f90564d63ef36c74">Json::Value::size</a></div><div class="ttdeci">UInt size() const</div><div class="ttdoc">Number of values in array or object.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00706">json_value.cpp:706</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1ServerHandlerImp_1_1Setup_html_a0917334d1bcd42466056317511b70200"><div class="ttname"><a href="structripple_1_1ServerHandlerImp_1_1Setup.html#a0917334d1bcd42466056317511b70200">ripple::ServerHandlerImp::Setup::client</a></div><div class="ttdeci">client_t client</div><div class="ttdef"><b>Definition:</b> <a href="ServerHandlerImp_8h_source.html#l00071">ServerHandlerImp.h:71</a></div></div>
|
||||
@@ -1935,7 +1925,7 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceJson_html_a844d3d2c97ae1bafd1faa5a1f408514b"><div class="ttname"><a href="namespaceJson.html#a844d3d2c97ae1bafd1faa5a1f408514b">Json::setArray</a></div><div class="ttdeci">Json::Value & setArray(Json::Value &, Json::StaticString const &key)</div><div class="ttdoc">Add a new subarray at a named key in a Json object.</div><div class="ttdef"><b>Definition:</b> <a href="Object_8h_source.html#l00414">Object.h:414</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a32d6d3ce1a48272b677d2c88b1d30932a60badd0db2ef5b154d6101fe7b845e39"><div class="ttname"><a href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a60badd0db2ef5b154d6101fe7b845e39">ripple::rpcCHANNEL_AMT_MALFORMED</a></div><div class="ttdeci">@ rpcCHANNEL_AMT_MALFORMED</div><div class="ttdef"><b>Definition:</b> <a href="ErrorCodes_8h_source.html#l00101">ErrorCodes.h:101</a></div></div>
|
||||
<div class="ttc" id="abasic_ostringstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostringstream.html">std::ostringstream</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="anamespaceripple_1_1RPCCall_html_a1a95d65d49327d8f4cc8c1bf142cc0eb"><div class="ttname"><a href="namespaceripple_1_1RPCCall.html#a1a95d65d49327d8f4cc8c1bf142cc0eb">ripple::RPCCall::fromCommandLine</a></div><div class="ttdeci">int fromCommandLine(Config const &config, const std::vector< std::string > &vCmd, Logs &logs)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01681">RPCCall.cpp:1681</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_1_1RPCCall_html_a1a95d65d49327d8f4cc8c1bf142cc0eb"><div class="ttname"><a href="namespaceripple_1_1RPCCall.html#a1a95d65d49327d8f4cc8c1bf142cc0eb">ripple::RPCCall::fromCommandLine</a></div><div class="ttdeci">int fromCommandLine(Config const &config, const std::vector< std::string > &vCmd, Logs &logs)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01672">RPCCall.cpp:1672</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_a3eb4dc0381e1da47f10a0eb27f713bda"><div class="ttname"><a href="classripple_1_1RPCParser.html#a3eb4dc0381e1da47f10a0eb27f713bda">ripple::RPCParser::parseEvented</a></div><div class="ttdeci">Json::Value parseEvented(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00515">RPCCall.cpp:515</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1ServerHandlerImp_1_1Setup_1_1client__t_html_a34a533292e151fe67b0daa142369841f"><div class="ttname"><a href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#a34a533292e151fe67b0daa142369841f">ripple::ServerHandlerImp::Setup::client_t::admin_password</a></div><div class="ttdeci">std::string admin_password</div><div class="ttdef"><b>Definition:</b> <a href="ServerHandlerImp_8h_source.html#l00067">ServerHandlerImp.h:67</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1RPCCallImp_html_a32512463f0b70d4fcc36aec0536ab066"><div class="ttname"><a href="structripple_1_1RPCCallImp.html#a32512463f0b70d4fcc36aec0536ab066">ripple::RPCCallImp::RPCCallImp</a></div><div class="ttdeci">RPCCallImp()=default</div></div>
|
||||
@@ -1947,13 +1937,13 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceripple_html_a32d6d3ce1a48272b677d2c88b1d30932a89a147d7376535a497c85024dabc9167"><div class="ttname"><a href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a89a147d7376535a497c85024dabc9167">ripple::rpcBAD_SYNTAX</a></div><div class="ttdeci">@ rpcBAD_SYNTAX</div><div class="ttdef"><b>Definition:</b> <a href="ErrorCodes_8h_source.html#l00046">ErrorCodes.h:46</a></div></div>
|
||||
<div class="ttc" id="aclassJson_1_1Value_html_a501a4d67e6c875255c2ecc03ccd2019b"><div class="ttname"><a href="classJson_1_1Value.html#a501a4d67e6c875255c2ecc03ccd2019b">Json::Value::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Remove all object members and array elements.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00753">json_value.cpp:753</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a32d6d3ce1a48272b677d2c88b1d30932a2e316006c45784996f1c36ff28ecf795"><div class="ttname"><a href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a2e316006c45784996f1c36ff28ecf795">ripple::rpcUNKNOWN_COMMAND</a></div><div class="ttdeci">@ rpcUNKNOWN_COMMAND</div><div class="ttdef"><b>Definition:</b> <a href="ErrorCodes_8h_source.html#l00085">ErrorCodes.h:85</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aa9714d222b28553ab9f4e9baf34be4ff"><div class="ttname"><a href="namespaceripple.html#aa9714d222b28553ab9f4e9baf34be4ff">ripple::cmdLineToJSONRPC</a></div><div class="ttdeci">Json::Value cmdLineToJSONRPC(std::vector< std::string > const &args, beast::Journal j)</div><div class="ttdoc">Given a rippled command line, return the corresponding JSON.</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01499">RPCCall.cpp:1499</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aa9714d222b28553ab9f4e9baf34be4ff"><div class="ttname"><a href="namespaceripple.html#aa9714d222b28553ab9f4e9baf34be4ff">ripple::cmdLineToJSONRPC</a></div><div class="ttdeci">Json::Value cmdLineToJSONRPC(std::vector< std::string > const &args, beast::Journal j)</div><div class="ttdoc">Given a rippled command line, return the corresponding JSON.</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01490">RPCCall.cpp:1490</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_a1f47a83da46a9a0f5409db752d193525"><div class="ttname"><a href="classripple_1_1RPCParser.html#a1f47a83da46a9a0f5409db752d193525">ripple::RPCParser::parseDownloadShard</a></div><div class="ttdeci">Json::Value parseDownloadShard(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00186">RPCCall.cpp:186</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_a468d00891c9d5998320ffe19b2434542"><div class="ttname"><a href="classripple_1_1RPCParser.html#a468d00891c9d5998320ffe19b2434542">ripple::RPCParser::parseDepositAuthorized</a></div><div class="ttdeci">Json::Value parseDepositAuthorized(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00501">RPCCall.cpp:501</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ab72afa7b2b33324b108c550dbc0a3c1f"><div class="ttname"><a href="namespaceripple.html#ab72afa7b2b33324b108c550dbc0a3c1f">ripple::rpcCmdLineToJson</a></div><div class="ttdeci">static Json::Value rpcCmdLineToJson(std::vector< std::string > const &args, Json::Value &retParams, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01461">RPCCall.cpp:1461</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ab72afa7b2b33324b108c550dbc0a3c1f"><div class="ttname"><a href="namespaceripple.html#ab72afa7b2b33324b108c550dbc0a3c1f">ripple::rpcCmdLineToJson</a></div><div class="ttdeci">static Json::Value rpcCmdLineToJson(std::vector< std::string > const &args, Json::Value &retParams, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01452">RPCCall.cpp:1452</a></div></div>
|
||||
<div class="ttc" id="aclassJson_1_1Value_html_a74b305583ec3aacf4f9dd06e799dc265"><div class="ttname"><a href="classJson_1_1Value.html#a74b305583ec3aacf4f9dd06e799dc265">Json::Value::asUInt</a></div><div class="ttdeci">UInt asUInt() const</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00545">json_value.cpp:545</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1RPCCallImp_html_ab7421486f8b9b70783fab86e3a4cd382"><div class="ttname"><a href="structripple_1_1RPCCallImp.html#ab7421486f8b9b70783fab86e3a4cd382">ripple::RPCCallImp::onResponse</a></div><div class="ttdeci">static bool onResponse(std::function< void(Json::Value const &jvInput)> callbackFuncP, const boost::system::error_code &ecResult, int iStatus, std::string const &strData, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01386">RPCCall.cpp:1386</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a425645d42dd2466ffc69e73fc6861b3d"><div class="ttname"><a href="namespaceripple.html#a425645d42dd2466ffc69e73fc6861b3d">ripple::rpcClient</a></div><div class="ttdeci">std::pair< int, Json::Value > rpcClient(std::vector< std::string > const &args, Config const &config, Logs &logs, std::unordered_map< std::string, std::string > const &headers)</div><div class="ttdoc">Internal invocation of RPC client.</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01530">RPCCall.cpp:1530</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a425645d42dd2466ffc69e73fc6861b3d"><div class="ttname"><a href="namespaceripple.html#a425645d42dd2466ffc69e73fc6861b3d">ripple::rpcClient</a></div><div class="ttdeci">std::pair< int, Json::Value > rpcClient(std::vector< std::string > const &args, Config const &config, Logs &logs, std::unordered_map< std::string, std::string > const &headers)</div><div class="ttdoc">Internal invocation of RPC client.</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01521">RPCCall.cpp:1521</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a1bf8df553d36589191c8057c136cce03ab23f52a56f27cc97abe221ea3c5cd56c"><div class="ttname"><a href="namespaceripple.html#a1bf8df553d36589191c8057c136cce03ab23f52a56f27cc97abe221ea3c5cd56c">ripple::TokenType::AccountPublic</a></div><div class="ttdeci">@ AccountPublic</div></div>
|
||||
<div class="ttc" id="aclassJson_1_1Reader_html_a8ee4d40504e4f8b069745d762ab4d78c"><div class="ttname"><a href="classJson_1_1Reader.html#a8ee4d40504e4f8b069745d762ab4d78c">Json::Reader::parse</a></div><div class="ttdeci">bool parse(std::string const &document, Value &root)</div><div class="ttdoc">Read a Value from a JSON document.</div><div class="ttdef"><b>Definition:</b> <a href="json__reader_8cpp_source.html#l00074">json_reader.cpp:74</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_1_1RPC_html_a8c4c4528421d724a8a82db708b1a761b"><div class="ttname"><a href="namespaceripple_1_1RPC.html#a8c4c4528421d724a8a82db708b1a761b">ripple::RPC::apiMaximumSupportedVersion</a></div><div class="ttdeci">constexpr unsigned int apiMaximumSupportedVersion</div><div class="ttdef"><b>Definition:</b> <a href="RPCHelpers_8h_source.html#l00244">RPCHelpers.h:244</a></div></div>
|
||||
@@ -1970,10 +1960,10 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceripple_html_af9776f187d3686a7fba4c2d2fbeebdf4"><div class="ttname"><a href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">ripple::to_string</a></div><div class="ttdeci">std::string to_string(Manifest const &m)</div><div class="ttdoc">Format the specified manifest to a string for debugging purposes.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00041">app/misc/impl/Manifest.cpp:41</a></div></div>
|
||||
<div class="ttc" id="aclassJson_1_1Value_html_a614d635bc248a592593feb322cd15ab8"><div class="ttname"><a href="classJson_1_1Value.html#a614d635bc248a592593feb322cd15ab8">Json::Value::asInt</a></div><div class="ttdeci">Int asInt() const</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00503">json_value.cpp:503</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_a62e5653a4b591563ac8e6e608b3200e9"><div class="ttname"><a href="classripple_1_1RPCParser.html#a62e5653a4b591563ac8e6e608b3200e9">ripple::RPCParser::isValidJson2</a></div><div class="ttdeci">bool isValidJson2(Json::Value const &jv)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00613">RPCCall.cpp:613</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_1_1RPCCall_html_a9817ac845ca5041cf35be3ef4750a9f2"><div class="ttname"><a href="namespaceripple_1_1RPCCall.html#a9817ac845ca5041cf35be3ef4750a9f2">ripple::RPCCall::fromNetwork</a></div><div class="ttdeci">void fromNetwork(boost::asio::io_service &io_service, std::string const &strIp, const std::uint16_t iPort, std::string const &strUsername, std::string const &strPassword, std::string const &strPath, std::string const &strMethod, Json::Value const &jvParams, const bool bSSL, const bool quiet, Logs &logs, std::function< void(Json::Value const &jvInput)> callbackFuncP, std::unordered_map< std::string, std::string > headers)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01696">RPCCall.cpp:1696</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_1_1RPCCall_html_a9817ac845ca5041cf35be3ef4750a9f2"><div class="ttname"><a href="namespaceripple_1_1RPCCall.html#a9817ac845ca5041cf35be3ef4750a9f2">ripple::RPCCall::fromNetwork</a></div><div class="ttdeci">void fromNetwork(boost::asio::io_service &io_service, std::string const &strIp, const std::uint16_t iPort, std::string const &strUsername, std::string const &strPassword, std::string const &strPath, std::string const &strMethod, Json::Value const &jvParams, const bool bSSL, const bool quiet, Logs &logs, std::function< void(Json::Value const &jvInput)> callbackFuncP, std::unordered_map< std::string, std::string > headers)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l01687">RPCCall.cpp:1687</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1base__uint_html_a698d3fd0c0f0155995c87d2f48ac90d5"><div class="ttname"><a href="classripple_1_1base__uint.html#a698d3fd0c0f0155995c87d2f48ac90d5">ripple::base_uint::parseHex</a></div><div class="ttdeci">constexpr bool parseHex(std::string_view sv)</div><div class="ttdoc">Parse a hex string into a base_uint.</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00495">base_uint.h:495</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_a2d40420130c18e9c682f78bb20eafe88"><div class="ttname"><a href="classripple_1_1RPCParser.html#a2d40420130c18e9c682f78bb20eafe88">ripple::RPCParser::parseJson</a></div><div class="ttdeci">Json::Value parseJson(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00591">RPCCall.cpp:591</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_1_1RPC_html_a5b6ce0616f6995340f4dd846660c3749"><div class="ttname"><a href="namespaceripple_1_1RPC.html#a5b6ce0616f6995340f4dd846660c3749">ripple::RPC::make_param_error</a></div><div class="ttdeci">Json::Value make_param_error(std::string const &message)</div><div class="ttdoc">Returns a new json object that indicates invalid parameters.</div><div class="ttdef"><b>Definition:</b> <a href="ErrorCodes_8h_source.html#l00234">ErrorCodes.h:234</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_1_1RPC_html_a5b6ce0616f6995340f4dd846660c3749"><div class="ttname"><a href="namespaceripple_1_1RPC.html#a5b6ce0616f6995340f4dd846660c3749">ripple::RPC::make_param_error</a></div><div class="ttdeci">Json::Value make_param_error(std::string const &message)</div><div class="ttdoc">Returns a new json object that indicates invalid parameters.</div><div class="ttdef"><b>Definition:</b> <a href="ErrorCodes_8h_source.html#l00250">ErrorCodes.h:250</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_af8897ca9ac4d5d270ea09dc9cfb9fe02"><div class="ttname"><a href="classripple_1_1RPCParser.html#af8897ca9ac4d5d270ea09dc9cfb9fe02">ripple::RPCParser::parseSignFor</a></div><div class="ttdeci">Json::Value parseSignFor(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00562">RPCCall.cpp:562</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1ServerHandlerImp_1_1Setup_1_1client__t_html_adae7271497ad30628f2c5d7ffbca9672"><div class="ttname"><a href="structripple_1_1ServerHandlerImp_1_1Setup_1_1client__t.html#adae7271497ad30628f2c5d7ffbca9672">ripple::ServerHandlerImp::Setup::client_t::password</a></div><div class="ttdeci">std::string password</div><div class="ttdef"><b>Definition:</b> <a href="ServerHandlerImp_8h_source.html#l00065">ServerHandlerImp.h:65</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPCParser_html_a175d63ba60d9b4889d99843922a4d62f"><div class="ttname"><a href="classripple_1_1RPCParser.html#a175d63ba60d9b4889d99843922a4d62f">ripple::RPCParser::parseNodeToShard</a></div><div class="ttdeci">Json::Value parseNodeToShard(Json::Value const &jvParams)</div><div class="ttdef"><b>Definition:</b> <a href="RPCCall_8cpp_source.html#l00940">RPCCall.cpp:940</a></div></div>
|
||||
|
||||
Reference in New Issue
Block a user