Add ripple_client module unity build and move RPCServer into it

This commit is contained in:
Vinnie Falco
2013-05-22 14:45:08 -07:00
parent 4c485ac5ce
commit 89eb0bc6f0
11 changed files with 370 additions and 201 deletions

View File

@@ -0,0 +1,45 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
//==============================================================================
/** Add this to get the @ref ripple_client module.
@file ripple_client.cpp
@ingroup ripple_client
*/
#include "ripple_client.h"
// VFALCO: TODO, fix these warnings!
#ifdef _MSC_VER
//#pragma warning (push) // Causes spurious C4503 "decorated name exceeds maximum length"
#pragma warning (disable: 4018) // signed/unsigned mismatch
#pragma warning (disable: 4244) // conversion, possible loss of data
#endif
#include "src/cpp/ripple/CallRPC.cpp"
#include "src/cpp/ripple/HttpsClient.cpp"
#include "src/cpp/ripple/rpc.cpp"
#include "src/cpp/ripple/RPCDoor.cpp"
#include "src/cpp/ripple/RPCErr.cpp"
#include "src/cpp/ripple/RPCHandler.cpp"
#include "src/cpp/ripple/RPCServer.cpp"
#include "src/cpp/ripple/RPCSub.cpp"
#ifdef _MSC_VER
//#pragma warning (pop)
#endif

View File

@@ -0,0 +1,37 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
//==============================================================================
/** Include this to get the @ref ripple_client module.
@file ripple_client.h
@ingroup ripple_client
*/
/** Client classes.
This module provides classes that perform client interaction with the server.
@defgroup ripple_client
*/
#ifndef RIPPLE_CLIENT_H
#define RIPPLE_CLIENT_H
#endif

View File

@@ -168,6 +168,7 @@
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="modules\ripple_basics\ripple_basics.cpp" /> <ClCompile Include="modules\ripple_basics\ripple_basics.cpp" />
<ClCompile Include="modules\ripple_client\ripple_client.cpp" />
<ClCompile Include="modules\ripple_ledger\ripple_ledger.cpp" /> <ClCompile Include="modules\ripple_ledger\ripple_ledger.cpp" />
<ClCompile Include="src\cpp\database\database.cpp" /> <ClCompile Include="src\cpp\database\database.cpp" />
<ClCompile Include="src\cpp\database\sqlite3.c" /> <ClCompile Include="src\cpp\database\sqlite3.c" />
@@ -175,14 +176,20 @@
<ClCompile Include="src\cpp\json\json_reader.cpp"> <ClCompile Include="src\cpp\json\json_reader.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="src\cpp\json\json_value.cpp"> <ClCompile Include="src\cpp\json\json_value.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="src\cpp\json\json_writer.cpp"> <ClCompile Include="src\cpp\json\json_writer.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="src\cpp\json_core.cpp" /> <ClCompile Include="src\cpp\json_core.cpp" />
<ClCompile Include="src\cpp\leveldb\db\builder.cc"> <ClCompile Include="src\cpp\leveldb\db\builder.cc">
@@ -532,9 +539,24 @@
<ClCompile Include="src\cpp\ripple\AmountRound.cpp" /> <ClCompile Include="src\cpp\ripple\AmountRound.cpp" />
<ClCompile Include="src\cpp\ripple\Application.cpp" /> <ClCompile Include="src\cpp\ripple\Application.cpp" />
<ClCompile Include="src\cpp\ripple\BitcoinUtil.cpp" /> <ClCompile Include="src\cpp\ripple\BitcoinUtil.cpp" />
<ClCompile Include="src\cpp\ripple\CallRPC.cpp" /> <ClCompile Include="src\cpp\ripple\CallRPC.cpp">
<ClCompile Include="src\cpp\ripple\CanonicalTXSet.cpp" /> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ClCompile Include="src\cpp\ripple\ChangeTransactor.cpp" /> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="src\cpp\ripple\CanonicalTXSet.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="src\cpp\ripple\ChangeTransactor.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="src\cpp\ripple\Config.cpp" /> <ClCompile Include="src\cpp\ripple\Config.cpp" />
<ClCompile Include="src\cpp\ripple\ConnectionPool.cpp" /> <ClCompile Include="src\cpp\ripple\ConnectionPool.cpp" />
<ClCompile Include="src\cpp\ripple\Contract.cpp"> <ClCompile Include="src\cpp\ripple\Contract.cpp">
@@ -555,7 +577,12 @@
<ClCompile Include="src\cpp\ripple\FieldNames.cpp" /> <ClCompile Include="src\cpp\ripple\FieldNames.cpp" />
<ClCompile Include="src\cpp\ripple\HashedObject.cpp" /> <ClCompile Include="src\cpp\ripple\HashedObject.cpp" />
<ClCompile Include="src\cpp\ripple\HTTPRequest.cpp" /> <ClCompile Include="src\cpp\ripple\HTTPRequest.cpp" />
<ClCompile Include="src\cpp\ripple\HttpsClient.cpp" /> <ClCompile Include="src\cpp\ripple\HttpsClient.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="src\cpp\ripple\InstanceCounter.cpp" /> <ClCompile Include="src\cpp\ripple\InstanceCounter.cpp" />
<ClCompile Include="src\cpp\ripple\Interpreter.cpp" /> <ClCompile Include="src\cpp\ripple\Interpreter.cpp" />
<ClCompile Include="src\cpp\ripple\JobQueue.cpp" /> <ClCompile Include="src\cpp\ripple\JobQueue.cpp" />
@@ -693,12 +720,42 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="src\cpp\ripple\rpc.cpp" /> <ClCompile Include="src\cpp\ripple\rpc.cpp">
<ClCompile Include="src\cpp\ripple\RPCDoor.cpp" /> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ClCompile Include="src\cpp\ripple\RPCErr.cpp" /> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ClCompile Include="src\cpp\ripple\RPCHandler.cpp" /> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ClCompile Include="src\cpp\ripple\RPCServer.cpp" /> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ClCompile Include="src\cpp\ripple\RPCSub.cpp" /> </ClCompile>
<ClCompile Include="src\cpp\ripple\RPCDoor.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCErr.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCHandler.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCServer.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCSub.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="src\cpp\ripple\ScriptData.cpp" /> <ClCompile Include="src\cpp\ripple\ScriptData.cpp" />
<ClCompile Include="src\cpp\ripple\SerializedLedger.cpp"> <ClCompile Include="src\cpp\ripple\SerializedLedger.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
@@ -857,44 +914,63 @@
<ClInclude Include="database\sqlite3.h" /> <ClInclude Include="database\sqlite3.h" />
<ClInclude Include="database\sqlite3ext.h" /> <ClInclude Include="database\sqlite3ext.h" />
<ClInclude Include="modules\ripple_basics\ripple_basics.h" /> <ClInclude Include="modules\ripple_basics\ripple_basics.h" />
<ClInclude Include="modules\ripple_client\ripple_client.h" />
<ClInclude Include="modules\ripple_ledger\ripple_ledger.h" /> <ClInclude Include="modules\ripple_ledger\ripple_ledger.h" />
<ClInclude Include="src\cpp\database\database.h" /> <ClInclude Include="src\cpp\database\database.h" />
<ClInclude Include="src\cpp\database\SqliteDatabase.h" /> <ClInclude Include="src\cpp\database\SqliteDatabase.h" />
<ClInclude Include="src\cpp\json\autolink.h"> <ClInclude Include="src\cpp\json\autolink.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\json\config.h"> <ClInclude Include="src\cpp\json\config.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\json\features.h"> <ClInclude Include="src\cpp\json\features.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\json\forwards.h"> <ClInclude Include="src\cpp\json\forwards.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\json\json.h"> <ClInclude Include="src\cpp\json\json.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\json\json_batchallocator.h"> <ClInclude Include="src\cpp\json\json_batchallocator.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\json\reader.h"> <ClInclude Include="src\cpp\json\reader.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\json\value.h"> <ClInclude Include="src\cpp\json\value.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\json\writer.h"> <ClInclude Include="src\cpp\json\writer.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\leveldb\db\builder.h"> <ClInclude Include="src\cpp\leveldb\db\builder.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
@@ -1338,16 +1414,22 @@
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SrcDir)\%(Filename).pb.h;$(SrcDir)\%(Filename).pb.cc</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SrcDir)\%(Filename).pb.h;$(SrcDir)\%(Filename).pb.cc</Outputs>
</CustomBuild> </CustomBuild>
<None Include="src\cpp\json\json_internalarray.inl"> <None Include="src\cpp\json\json_internalarray.inl">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</None> </None>
<None Include="src\cpp\json\json_internalmap.inl"> <None Include="src\cpp\json\json_internalmap.inl">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</None> </None>
<None Include="src\cpp\json\json_valueiterator.inl"> <None Include="src\cpp\json\json_valueiterator.inl">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</None> </None>
<None Include="src\cpp\protobuf\src\google\protobuf\descriptor.proto"> <None Include="src\cpp\protobuf\src\google\protobuf\descriptor.proto">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

View File

@@ -95,6 +95,9 @@
<Filter Include="1. Modules\ripple_ledger\processing"> <Filter Include="1. Modules\ripple_ledger\processing">
<UniqueIdentifier>{c441b367-d096-401f-a3f0-5ac24290d7b7}</UniqueIdentifier> <UniqueIdentifier>{c441b367-d096-401f-a3f0-5ac24290d7b7}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="1. Modules\ripple_client\rpc">
<UniqueIdentifier>{3f351c55-360d-40bc-a136-4944ce572efd}</UniqueIdentifier>
</Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\cpp\database\sqlite3.c"> <ClCompile Include="src\cpp\database\sqlite3.c">
@@ -433,15 +436,6 @@
<ClCompile Include="src\cpp\ripple\Application.cpp"> <ClCompile Include="src\cpp\ripple\Application.cpp">
<Filter>1. Modules\ripple_main</Filter> <Filter>1. Modules\ripple_main</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\cpp\ripple\CallRPC.cpp">
<Filter>1. Modules\ripple_client</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\CanonicalTXSet.cpp">
<Filter>1. Modules\ripple_client</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\ChangeTransactor.cpp">
<Filter>1. Modules\ripple_client</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\Config.cpp"> <ClCompile Include="src\cpp\ripple\Config.cpp">
<Filter>1. Modules\ripple_main</Filter> <Filter>1. Modules\ripple_main</Filter>
</ClCompile> </ClCompile>
@@ -508,9 +502,6 @@
<ClCompile Include="src\cpp\ripple\AccountSetTransactor.cpp"> <ClCompile Include="src\cpp\ripple\AccountSetTransactor.cpp">
<Filter>1. Modules\ripple_ledger\transactions</Filter> <Filter>1. Modules\ripple_ledger\transactions</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\cpp\ripple\HttpsClient.cpp">
<Filter>1. Modules\ripple_client</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\LoadManager.cpp"> <ClCompile Include="src\cpp\ripple\LoadManager.cpp">
<Filter>1. Modules\ripple_main</Filter> <Filter>1. Modules\ripple_main</Filter>
</ClCompile> </ClCompile>
@@ -535,21 +526,6 @@
<ClCompile Include="src\cpp\ripple\NetworkOPs.cpp"> <ClCompile Include="src\cpp\ripple\NetworkOPs.cpp">
<Filter>1. Modules\ripple_net</Filter> <Filter>1. Modules\ripple_net</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\cpp\ripple\RPCDoor.cpp">
<Filter>1. Modules\ripple_client</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCErr.cpp">
<Filter>1. Modules\ripple_client</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCHandler.cpp">
<Filter>1. Modules\ripple_client</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCSub.cpp">
<Filter>1. Modules\ripple_client</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\rpc.cpp">
<Filter>1. Modules\ripple_client</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\SerializedLedger.cpp"> <ClCompile Include="src\cpp\ripple\SerializedLedger.cpp">
<Filter>1. Modules\ripple_ledger\serialization</Filter> <Filter>1. Modules\ripple_ledger\serialization</Filter>
</ClCompile> </ClCompile>
@@ -571,9 +547,6 @@
<ClCompile Include="src\cpp\ripple\ValidationCollection.cpp"> <ClCompile Include="src\cpp\ripple\ValidationCollection.cpp">
<Filter>1. Modules\ripple_net</Filter> <Filter>1. Modules\ripple_net</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\cpp\ripple\RPCServer.cpp">
<Filter>1. Modules\ripple_net</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\WSDoor.cpp"> <ClCompile Include="src\cpp\ripple\WSDoor.cpp">
<Filter>1. Modules\ripple_net</Filter> <Filter>1. Modules\ripple_net</Filter>
</ClCompile> </ClCompile>
@@ -697,6 +670,39 @@
<ClCompile Include="src\cpp\ripple\RippleState.cpp"> <ClCompile Include="src\cpp\ripple\RippleState.cpp">
<Filter>1. Modules\ripple_ledger\processing</Filter> <Filter>1. Modules\ripple_ledger\processing</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\cpp\ripple\CallRPC.cpp">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\HttpsClient.cpp">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\rpc.cpp">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCDoor.cpp">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCErr.cpp">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCHandler.cpp">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCSub.cpp">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClCompile>
<ClCompile Include="modules\ripple_client\ripple_client.cpp">
<Filter>1. Modules\ripple_client</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\ChangeTransactor.cpp">
<Filter>1. Modules\ripple_ledger\transactions</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\CanonicalTXSet.cpp">
<Filter>1. Modules\ripple_ledger\transactions</Filter>
</ClCompile>
<ClCompile Include="src\cpp\ripple\RPCServer.cpp">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="database\sqlite3ext.h"> <ClInclude Include="database\sqlite3ext.h">
@@ -1065,15 +1071,6 @@
<ClInclude Include="src\cpp\ripple\AutoSocket.h"> <ClInclude Include="src\cpp\ripple\AutoSocket.h">
<Filter>1. Modules\ripple_net</Filter> <Filter>1. Modules\ripple_net</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\ripple\CallRPC.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\CanonicalTXSet.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\ChangeTransactor.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\Config.h"> <ClInclude Include="src\cpp\ripple\Config.h">
<Filter>1. Modules\ripple_main</Filter> <Filter>1. Modules\ripple_main</Filter>
</ClInclude> </ClInclude>
@@ -1134,9 +1131,6 @@
<ClInclude Include="src\cpp\ripple\AccountSetTransactor.h"> <ClInclude Include="src\cpp\ripple\AccountSetTransactor.h">
<Filter>1. Modules\ripple_ledger\transactions</Filter> <Filter>1. Modules\ripple_ledger\transactions</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\ripple\HttpsClient.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\LoadManager.h"> <ClInclude Include="src\cpp\ripple\LoadManager.h">
<Filter>1. Modules\ripple_main</Filter> <Filter>1. Modules\ripple_main</Filter>
</ClInclude> </ClInclude>
@@ -1155,21 +1149,6 @@
<ClInclude Include="src\cpp\ripple\NetworkOPs.h"> <ClInclude Include="src\cpp\ripple\NetworkOPs.h">
<Filter>1. Modules\ripple_net</Filter> <Filter>1. Modules\ripple_net</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\ripple\RPC.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPCDoor.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPCErr.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPCHandler.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPCSub.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\SerializedLedger.h"> <ClInclude Include="src\cpp\ripple\SerializedLedger.h">
<Filter>1. Modules\ripple_ledger\serialization</Filter> <Filter>1. Modules\ripple_ledger\serialization</Filter>
</ClInclude> </ClInclude>
@@ -1194,12 +1173,6 @@
<ClInclude Include="src\cpp\ripple\ValidationCollection.h"> <ClInclude Include="src\cpp\ripple\ValidationCollection.h">
<Filter>1. Modules\ripple_net</Filter> <Filter>1. Modules\ripple_net</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\ripple\WSHandler.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPCServer.h">
<Filter>1. Modules\ripple_net</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\WSDoor.h"> <ClInclude Include="src\cpp\ripple\WSDoor.h">
<Filter>1. Modules\ripple_net</Filter> <Filter>1. Modules\ripple_net</Filter>
</ClInclude> </ClInclude>
@@ -1326,6 +1299,42 @@
<ClInclude Include="src\cpp\ripple\RippleState.h"> <ClInclude Include="src\cpp\ripple\RippleState.h">
<Filter>1. Modules\ripple_ledger\processing</Filter> <Filter>1. Modules\ripple_ledger\processing</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\cpp\ripple\WSHandler.h">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\CallRPC.h">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\HttpsClient.h">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPC.h">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPCDoor.h">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPCErr.h">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPCHandler.h">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPCSub.h">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClInclude>
<ClInclude Include="modules\ripple_client\ripple_client.h">
<Filter>1. Modules\ripple_client</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\ChangeTransactor.h">
<Filter>1. Modules\ripple_ledger\transactions</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\CanonicalTXSet.h">
<Filter>1. Modules\ripple_ledger\transactions</Filter>
</ClInclude>
<ClInclude Include="src\cpp\ripple\RPCServer.h">
<Filter>1. Modules\ripple_client\rpc</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="wallet.xml" /> <None Include="wallet.xml" />

View File

@@ -14,8 +14,6 @@
#include "Config.h" #include "Config.h"
#include "Log.h" #include "Log.h"
SETUP_LOG();
#define CLIENT_MAX_HEADER (32*1024) #define CLIENT_MAX_HEADER (32*1024)
using namespace boost::system; using namespace boost::system;
@@ -84,7 +82,7 @@ void HttpsClient::httpsGet(
void HttpsClient::httpsNext() void HttpsClient::httpsNext()
{ {
cLog(lsTRACE) << "Fetch: " << mDeqSites[0]; WriteLog (lsTRACE, HttpsClient) << "Fetch: " << mDeqSites[0];
boost::shared_ptr<boost::asio::ip::tcp::resolver::query> query(new boost::asio::ip::tcp::resolver::query(mDeqSites[0], boost::lexical_cast<std::string>(mPort), boost::shared_ptr<boost::asio::ip::tcp::resolver::query> query(new boost::asio::ip::tcp::resolver::query(mDeqSites[0], boost::lexical_cast<std::string>(mPort),
ip::resolver_query_base::numeric_service)); ip::resolver_query_base::numeric_service));
@@ -92,7 +90,7 @@ void HttpsClient::httpsNext()
mDeadline.expires_from_now(mTimeout, mShutdown); mDeadline.expires_from_now(mTimeout, mShutdown);
cLog(lsTRACE) << "expires_from_now: " << mShutdown.message(); WriteLog (lsTRACE, HttpsClient) << "expires_from_now: " << mShutdown.message();
if (!mShutdown) if (!mShutdown)
{ {
@@ -105,7 +103,7 @@ void HttpsClient::httpsNext()
if (!mShutdown) if (!mShutdown)
{ {
cLog(lsTRACE) << "Resolving: " << mDeqSites[0]; WriteLog (lsTRACE, HttpsClient) << "Resolving: " << mDeqSites[0];
mResolver.async_resolve(*mQuery, mResolver.async_resolve(*mQuery,
boost::bind( boost::bind(
@@ -124,20 +122,20 @@ void HttpsClient::handleDeadline(const boost::system::error_code& ecResult)
if (ecResult == boost::asio::error::operation_aborted) if (ecResult == boost::asio::error::operation_aborted)
{ {
// Timer canceled because deadline no longer needed. // Timer canceled because deadline no longer needed.
cLog(lsTRACE) << "Deadline cancelled."; WriteLog (lsTRACE, HttpsClient) << "Deadline cancelled.";
nothing(); // Aborter is done. nothing(); // Aborter is done.
} }
else if (ecResult) else if (ecResult)
{ {
cLog(lsTRACE) << "Deadline error: " << mDeqSites[0] << ": " << ecResult.message(); WriteLog (lsTRACE, HttpsClient) << "Deadline error: " << mDeqSites[0] << ": " << ecResult.message();
// Can't do anything sound. // Can't do anything sound.
abort(); abort();
} }
else else
{ {
cLog(lsTRACE) << "Deadline arrived."; WriteLog (lsTRACE, HttpsClient) << "Deadline arrived.";
// Mark us as shutting down. // Mark us as shutting down.
// XXX Use our own error code. // XXX Use our own error code.
@@ -161,7 +159,7 @@ void HttpsClient::handleShutdown(
{ {
if (ecResult) if (ecResult)
{ {
cLog(lsTRACE) << "Shutdown error: " << mDeqSites[0] << ": " << ecResult.message(); WriteLog (lsTRACE, HttpsClient) << "Shutdown error: " << mDeqSites[0] << ": " << ecResult.message();
} }
} }
@@ -175,13 +173,13 @@ void HttpsClient::handleResolve(
if (mShutdown) if (mShutdown)
{ {
cLog(lsTRACE) << "Resolve error: " << mDeqSites[0] << ": " << mShutdown.message(); WriteLog (lsTRACE, HttpsClient) << "Resolve error: " << mDeqSites[0] << ": " << mShutdown.message();
invokeComplete(mShutdown); invokeComplete(mShutdown);
} }
else else
{ {
cLog(lsTRACE) << "Resolve complete."; WriteLog (lsTRACE, HttpsClient) << "Resolve complete.";
boost::asio::async_connect( boost::asio::async_connect(
mSocket.lowest_layer(), mSocket.lowest_layer(),
@@ -200,19 +198,19 @@ void HttpsClient::handleConnect(const boost::system::error_code& ecResult)
if (mShutdown) if (mShutdown)
{ {
cLog(lsTRACE) << "Connect error: " << mShutdown.message(); WriteLog (lsTRACE, HttpsClient) << "Connect error: " << mShutdown.message();
} }
if (!mShutdown) if (!mShutdown)
{ {
cLog(lsTRACE) << "Connected."; WriteLog (lsTRACE, HttpsClient) << "Connected.";
if (theConfig.SSL_VERIFY) if (theConfig.SSL_VERIFY)
{ {
mShutdown = mSocket.verify(mDeqSites[0]); mShutdown = mSocket.verify(mDeqSites[0]);
if (mShutdown) if (mShutdown)
{ {
cLog(lsTRACE) << "set_verify_callback: " << mDeqSites[0] << ": " << mShutdown.message(); WriteLog (lsTRACE, HttpsClient) << "set_verify_callback: " << mDeqSites[0] << ": " << mShutdown.message();
} }
} }
} }
@@ -243,13 +241,13 @@ void HttpsClient::handleRequest(const boost::system::error_code& ecResult)
if (mShutdown) if (mShutdown)
{ {
cLog(lsTRACE) << "Handshake error:" << mShutdown.message(); WriteLog (lsTRACE, HttpsClient) << "Handshake error:" << mShutdown.message();
invokeComplete(mShutdown); invokeComplete(mShutdown);
} }
else else
{ {
cLog(lsTRACE) << "Session started."; WriteLog (lsTRACE, HttpsClient) << "Session started.";
mBuild(mRequest, mDeqSites[0]); mBuild(mRequest, mDeqSites[0]);
@@ -269,13 +267,13 @@ void HttpsClient::handleWrite(const boost::system::error_code& ecResult, std::si
if (mShutdown) if (mShutdown)
{ {
cLog(lsTRACE) << "Write error: " << mShutdown.message(); WriteLog (lsTRACE, HttpsClient) << "Write error: " << mShutdown.message();
invokeComplete(mShutdown); invokeComplete(mShutdown);
} }
else else
{ {
cLog(lsTRACE) << "Wrote."; WriteLog (lsTRACE, HttpsClient) << "Wrote.";
mSocket.async_read_until( mSocket.async_read_until(
mHeader, mHeader,
@@ -290,7 +288,7 @@ void HttpsClient::handleWrite(const boost::system::error_code& ecResult, std::si
void HttpsClient::handleHeader(const boost::system::error_code& ecResult, std::size_t bytes_transferred) void HttpsClient::handleHeader(const boost::system::error_code& ecResult, std::size_t bytes_transferred)
{ {
std::string strHeader((std::istreambuf_iterator<char>(&mHeader)), std::istreambuf_iterator<char>()); std::string strHeader((std::istreambuf_iterator<char>(&mHeader)), std::istreambuf_iterator<char>());
cLog(lsTRACE) << "Header: \"" << strHeader << "\""; WriteLog (lsTRACE, HttpsClient) << "Header: \"" << strHeader << "\"";
static boost::regex reStatus("\\`HTTP/1\\S+ (\\d{3}) .*\\'"); // HTTP/1.1 200 OK static boost::regex reStatus("\\`HTTP/1\\S+ (\\d{3}) .*\\'"); // HTTP/1.1 200 OK
static boost::regex reSize("\\`.*\\r\\nContent-Length:\\s+([0-9]+).*\\'"); static boost::regex reSize("\\`.*\\r\\nContent-Length:\\s+([0-9]+).*\\'");
@@ -302,7 +300,7 @@ void HttpsClient::handleHeader(const boost::system::error_code& ecResult, std::s
if (!bMatch) if (!bMatch)
{ {
// XXX Use our own error code. // XXX Use our own error code.
cLog(lsTRACE) << "No status code"; WriteLog (lsTRACE, HttpsClient) << "No status code";
invokeComplete(boost::system::error_code(errc::bad_address, system_category())); invokeComplete(boost::system::error_code(errc::bad_address, system_category()));
return; return;
} }
@@ -339,7 +337,7 @@ void HttpsClient::handleData(const boost::system::error_code& ecResult, std::siz
if (mShutdown && mShutdown != boost::asio::error::eof) if (mShutdown && mShutdown != boost::asio::error::eof)
{ {
cLog(lsTRACE) << "Read error: " << mShutdown.message(); WriteLog (lsTRACE, HttpsClient) << "Read error: " << mShutdown.message();
invokeComplete(mShutdown); invokeComplete(mShutdown);
} }
@@ -347,7 +345,7 @@ void HttpsClient::handleData(const boost::system::error_code& ecResult, std::siz
{ {
if (mShutdown) if (mShutdown)
{ {
cLog(lsTRACE) << "Complete."; WriteLog (lsTRACE, HttpsClient) << "Complete.";
nothing(); nothing();
} }
@@ -369,10 +367,10 @@ void HttpsClient::invokeComplete(const boost::system::error_code& ecResult, int
if (ecCancel) if (ecCancel)
{ {
cLog(lsTRACE) << "HttpsClient::invokeComplete: Deadline cancel error: " << ecCancel.message(); WriteLog (lsTRACE, HttpsClient) << "HttpsClient::invokeComplete: Deadline cancel error: " << ecCancel.message();
} }
cLog(lsDEBUG) << "HttpsClient::invokeComplete: Deadline popping: " << mDeqSites.size(); WriteLog (lsDEBUG, HttpsClient) << "HttpsClient::invokeComplete: Deadline popping: " << mDeqSites.size();
if (!mDeqSites.empty()) if (!mDeqSites.empty())
{ {
mDeqSites.pop_front(); mDeqSites.pop_front();
@@ -446,7 +444,7 @@ void HttpsClient::httpsRequest(
#define SMS_TIMEOUT 30 #define SMS_TIMEOUT 30
bool responseSMS(const boost::system::error_code& ecResult, int iStatus, const std::string& strData) { bool responseSMS(const boost::system::error_code& ecResult, int iStatus, const std::string& strData) {
cLog(lsINFO) << "SMS: Response:" << iStatus << " :" << strData; WriteLog (lsINFO, HttpsClient) << "SMS: Response:" << iStatus << " :" << strData;
return true; return true;
} }
@@ -459,7 +457,7 @@ void HttpsClient::sendSMS(boost::asio::io_service& io_service, const std::string
if (theConfig.SMS_URL == "" || !parseUrl(theConfig.SMS_URL, strScheme, strDomain, iPort, strPath)) if (theConfig.SMS_URL == "" || !parseUrl(theConfig.SMS_URL, strScheme, strDomain, iPort, strPath))
{ {
cLog(lsWARNING) << "SMSRequest: Bad URL:" << theConfig.SMS_URL; WriteLog (lsWARNING, HttpsClient) << "SMSRequest: Bad URL:" << theConfig.SMS_URL;
} }
else else
{ {
@@ -475,8 +473,8 @@ void HttpsClient::sendSMS(boost::asio::io_service& io_service, const std::string
% theConfig.SMS_SECRET % theConfig.SMS_SECRET
% urlEncode(strText)); % urlEncode(strText));
// cLog(lsINFO) << "SMS: Request:" << strURI; // WriteLog (lsINFO) << "SMS: Request:" << strURI;
cLog(lsINFO) << "SMS: Request: '" << strText << "'"; WriteLog (lsINFO, HttpsClient) << "SMS: Request: '" << strText << "'";
if (iPort < 0) if (iPort < 0)
iPort = bSSL ? 443 : 80; iPort = bSSL ? 443 : 80;

View File

@@ -5,8 +5,6 @@
#include <boost/bind.hpp> #include <boost/bind.hpp>
#include <iostream> #include <iostream>
SETUP_LOG();
using namespace std; using namespace std;
using namespace boost::asio::ip; using namespace boost::asio::ip;
@@ -14,13 +12,13 @@ RPCDoor::RPCDoor(boost::asio::io_service& io_service) :
mAcceptor(io_service, tcp::endpoint(address::from_string(theConfig.RPC_IP), theConfig.RPC_PORT)), mAcceptor(io_service, tcp::endpoint(address::from_string(theConfig.RPC_IP), theConfig.RPC_PORT)),
mDelayTimer(io_service) mDelayTimer(io_service)
{ {
cLog(lsINFO) << "RPC port: " << theConfig.RPC_IP << " " << theConfig.RPC_PORT << " allow remote: " << theConfig.RPC_ALLOW_REMOTE; WriteLog (lsINFO, RPCDoor) << "RPC port: " << theConfig.RPC_IP << " " << theConfig.RPC_PORT << " allow remote: " << theConfig.RPC_ALLOW_REMOTE;
startListening(); startListening();
} }
RPCDoor::~RPCDoor() RPCDoor::~RPCDoor()
{ {
cLog(lsINFO) << "RPC port: " << theConfig.RPC_IP << " " << theConfig.RPC_PORT << " allow remote: " << theConfig.RPC_ALLOW_REMOTE; WriteLog (lsINFO, RPCDoor) << "RPC port: " << theConfig.RPC_IP << " " << theConfig.RPC_PORT << " allow remote: " << theConfig.RPC_ALLOW_REMOTE;
} }
void RPCDoor::startListening() void RPCDoor::startListening()
@@ -63,7 +61,7 @@ void RPCDoor::handleConnect(RPCServer::pointer new_connection,
{ {
if (error == boost::system::errc::too_many_files_open) if (error == boost::system::errc::too_many_files_open)
delay = true; delay = true;
cLog(lsINFO) << "RPCDoor::handleConnect Error: " << error; WriteLog (lsINFO, RPCDoor) << "RPCDoor::handleConnect Error: " << error;
} }
if (delay) if (delay)

View File

@@ -6,7 +6,10 @@
#include "../json/writer.h" #include "../json/writer.h"
SETUP_LOG(); // For logging
struct RPCErr
{
};
Json::Value rpcError(int iError, Json::Value jvResult) Json::Value rpcError(int iError, Json::Value jvResult)
{ {
@@ -88,7 +91,7 @@ Json::Value rpcError(int iError, Json::Value jvResult)
if (i >= 0) if (i >= 0)
{ {
cLog(lsDEBUG) << "rpcError: " WriteLog (lsDEBUG, RPCErr) << "rpcError: "
<< errorInfoA[i].pToken << ": " << errorInfoA[i].pMessage << std::endl; << errorInfoA[i].pToken << ": " << errorInfoA[i].pMessage << std::endl;
} }

View File

@@ -25,8 +25,6 @@
#include "PFRequest.h" #include "PFRequest.h"
#include "ProofOfWork.h" #include "ProofOfWork.h"
SETUP_LOG();
static const int rpcCOST_DEFAULT = 10; static const int rpcCOST_DEFAULT = 10;
static const int rpcCOST_EXCEPTION = 20; static const int rpcCOST_EXCEPTION = 20;
static const int rpcCOST_EXPENSIVE = 50; static const int rpcCOST_EXPENSIVE = 50;
@@ -81,7 +79,7 @@ Json::Value RPCHandler::transactionSign(Json::Value jvRequest, bool bSubmit)
RippleAddress naSeed; RippleAddress naSeed;
RippleAddress raSrcAddressID; RippleAddress raSrcAddressID;
cLog(lsDEBUG) << boost::str(boost::format("transactionSign: %s") % jvRequest); WriteLog (lsDEBUG, RPCHandler) << boost::str(boost::format("transactionSign: %s") % jvRequest);
if (!jvRequest.isMember("secret") || !jvRequest.isMember("tx_json")) if (!jvRequest.isMember("secret") || !jvRequest.isMember("tx_json"))
{ {
@@ -114,7 +112,7 @@ Json::Value RPCHandler::transactionSign(Json::Value jvRequest, bool bSubmit)
AccountState::pointer asSrc = mNetOps->getAccountState(mNetOps->getCurrentLedger(), raSrcAddressID); AccountState::pointer asSrc = mNetOps->getAccountState(mNetOps->getCurrentLedger(), raSrcAddressID);
if (!asSrc) if (!asSrc)
{ {
cLog(lsDEBUG) << boost::str(boost::format("transactionSign: Failed to find source account in current ledger: %s") WriteLog (lsDEBUG, RPCHandler) << boost::str(boost::format("transactionSign: Failed to find source account in current ledger: %s")
% raSrcAddressID.humanAccountID()); % raSrcAddressID.humanAccountID());
return rpcError(rpcSRC_ACT_NOT_FOUND); return rpcError(rpcSRC_ACT_NOT_FOUND);
@@ -187,13 +185,13 @@ Json::Value RPCHandler::transactionSign(Json::Value jvRequest, bool bSubmit)
if (!bValid || !pf.findPaths(theConfig.PATH_SEARCH_SIZE, 3, spsPaths)) if (!bValid || !pf.findPaths(theConfig.PATH_SEARCH_SIZE, 3, spsPaths))
{ {
cLog(lsDEBUG) << "transactionSign: build_path: No paths found."; WriteLog (lsDEBUG, RPCHandler) << "transactionSign: build_path: No paths found.";
return rpcError(rpcNO_PATH); return rpcError(rpcNO_PATH);
} }
else else
{ {
cLog(lsDEBUG) << "transactionSign: build_path: " << spsPaths.getJson(0); WriteLog (lsDEBUG, RPCHandler) << "transactionSign: build_path: " << spsPaths.getJson(0);
} }
if (!spsPaths.isEmpty()) if (!spsPaths.isEmpty())
@@ -243,7 +241,7 @@ Json::Value RPCHandler::transactionSign(Json::Value jvRequest, bool bSubmit)
{ {
naMasterAccountPublic.setAccountPublic(naMasterGenerator, iIndex); naMasterAccountPublic.setAccountPublic(naMasterGenerator, iIndex);
cLog(lsWARNING) << "authorize: " << iIndex << " : " << naMasterAccountPublic.humanAccountID() << " : " << raSrcAddressID.humanAccountID(); WriteLog (lsWARNING, RPCHandler) << "authorize: " << iIndex << " : " << naMasterAccountPublic.humanAccountID() << " : " << raSrcAddressID.humanAccountID();
bFound = raSrcAddressID.getAccountID() == naMasterAccountPublic.getAccountID(); bFound = raSrcAddressID.getAccountID() == naMasterAccountPublic.getAccountID();
if (!bFound) if (!bFound)
@@ -458,7 +456,7 @@ Json::Value RPCHandler::authorize(Ledger::ref lrLedger,
{ {
naMasterAccountPublic.setAccountPublic(naMasterGenerator, iIndex); naMasterAccountPublic.setAccountPublic(naMasterGenerator, iIndex);
cLog(lsDEBUG) << "authorize: " << iIndex << " : " << naMasterAccountPublic.humanAccountID() << " : " << naSrcAccountID.humanAccountID(); WriteLog (lsDEBUG, RPCHandler) << "authorize: " << iIndex << " : " << naMasterAccountPublic.humanAccountID() << " : " << naSrcAccountID.humanAccountID();
bFound = naSrcAccountID.getAccountID() == naMasterAccountPublic.getAccountID(); bFound = naSrcAccountID.getAccountID() == naMasterAccountPublic.getAccountID();
if (!bFound) if (!bFound)
@@ -489,7 +487,7 @@ Json::Value RPCHandler::authorize(Ledger::ref lrLedger,
if (saSrcBalance < saFee) if (saSrcBalance < saFee)
{ {
cLog(lsINFO) << "authorize: Insufficient funds for fees: fee=" << saFee.getText() << " balance=" << saSrcBalance.getText(); WriteLog (lsINFO, RPCHandler) << "authorize: Insufficient funds for fees: fee=" << saFee.getText() << " balance=" << saSrcBalance.getText();
return rpcError(rpcINSUF_FUNDS); return rpcError(rpcINSUF_FUNDS);
} }
@@ -1207,7 +1205,7 @@ Json::Value RPCHandler::doBookOffers(Json::Value jvRequest, int& cost, ScopedLoc
if (!jvTakerPays.isMember("currency") if (!jvTakerPays.isMember("currency")
|| !STAmount::currencyFromString(uTakerPaysCurrencyID, jvTakerPays["currency"].asString())) || !STAmount::currencyFromString(uTakerPaysCurrencyID, jvTakerPays["currency"].asString()))
{ {
cLog(lsINFO) << "Bad taker_pays currency."; WriteLog (lsINFO, RPCHandler) << "Bad taker_pays currency.";
return rpcError(rpcSRC_CUR_MALFORMED); return rpcError(rpcSRC_CUR_MALFORMED);
} }
@@ -1219,7 +1217,7 @@ Json::Value RPCHandler::doBookOffers(Json::Value jvRequest, int& cost, ScopedLoc
|| (!uTakerPaysCurrencyID != !uTakerPaysIssuerID) || (!uTakerPaysCurrencyID != !uTakerPaysIssuerID)
|| ACCOUNT_ONE == uTakerPaysIssuerID) || ACCOUNT_ONE == uTakerPaysIssuerID)
{ {
cLog(lsINFO) << "Bad taker_pays issuer."; WriteLog (lsINFO, RPCHandler) << "Bad taker_pays issuer.";
return rpcError(rpcSRC_ISR_MALFORMED); return rpcError(rpcSRC_ISR_MALFORMED);
} }
@@ -1232,7 +1230,7 @@ Json::Value RPCHandler::doBookOffers(Json::Value jvRequest, int& cost, ScopedLoc
if (!jvTakerGets.isMember("currency") if (!jvTakerGets.isMember("currency")
|| !STAmount::currencyFromString(uTakerGetsCurrencyID, jvTakerGets["currency"].asString())) || !STAmount::currencyFromString(uTakerGetsCurrencyID, jvTakerGets["currency"].asString()))
{ {
cLog(lsINFO) << "Bad taker_pays currency."; WriteLog (lsINFO, RPCHandler) << "Bad taker_pays currency.";
return rpcError(rpcSRC_CUR_MALFORMED); return rpcError(rpcSRC_CUR_MALFORMED);
} }
@@ -1244,14 +1242,14 @@ Json::Value RPCHandler::doBookOffers(Json::Value jvRequest, int& cost, ScopedLoc
|| (!uTakerGetsCurrencyID != !uTakerGetsIssuerID) || (!uTakerGetsCurrencyID != !uTakerGetsIssuerID)
|| ACCOUNT_ONE == uTakerGetsIssuerID) || ACCOUNT_ONE == uTakerGetsIssuerID)
{ {
cLog(lsINFO) << "Bad taker_gets issuer."; WriteLog (lsINFO, RPCHandler) << "Bad taker_gets issuer.";
return rpcError(rpcDST_ISR_MALFORMED); return rpcError(rpcDST_ISR_MALFORMED);
} }
if (uTakerPaysCurrencyID == uTakerGetsCurrencyID if (uTakerPaysCurrencyID == uTakerGetsCurrencyID
&& uTakerPaysIssuerID == uTakerGetsIssuerID) { && uTakerPaysIssuerID == uTakerGetsIssuerID) {
cLog(lsINFO) << "taker_gets same as taker_pays."; WriteLog (lsINFO, RPCHandler) << "taker_gets same as taker_pays.";
return rpcError(rpcBAD_MARKET); return rpcError(rpcBAD_MARKET);
} }
@@ -1355,7 +1353,7 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest, int& cost, Scope
int jc = theApp->getJobQueue().getJobCountGE(jtCLIENT); int jc = theApp->getJobQueue().getJobCountGE(jtCLIENT);
if (jc > 200) if (jc > 200)
{ {
cLog(lsDEBUG) << "Too busy for RPF: " << jc; WriteLog (lsDEBUG, RPCHandler) << "Too busy for RPF: " << jc;
return rpcError(rpcTOO_BUSY); return rpcError(rpcTOO_BUSY);
} }
@@ -1392,7 +1390,7 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest, int& cost, Scope
|| !saDstAmount.bSetJson(jvRequest["destination_amount"]) || !saDstAmount.bSetJson(jvRequest["destination_amount"])
|| (!!saDstAmount.getCurrency() && (!saDstAmount.getIssuer() || ACCOUNT_ONE == saDstAmount.getIssuer()))) || (!!saDstAmount.getCurrency() && (!saDstAmount.getIssuer() || ACCOUNT_ONE == saDstAmount.getIssuer())))
{ {
cLog(lsINFO) << "Bad destination_amount."; WriteLog (lsINFO, RPCHandler) << "Bad destination_amount.";
jvResult = rpcError(rpcINVALID_PARAMS); jvResult = rpcError(rpcINVALID_PARAMS);
} }
else if ( else if (
@@ -1402,7 +1400,7 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest, int& cost, Scope
|| !jvRequest["source_currencies"].size()) // Don't allow empty currencies. || !jvRequest["source_currencies"].size()) // Don't allow empty currencies.
) )
{ {
cLog(lsINFO) << "Bad source_currencies."; WriteLog (lsINFO, RPCHandler) << "Bad source_currencies.";
jvResult = rpcError(rpcINVALID_PARAMS); jvResult = rpcError(rpcINVALID_PARAMS);
} }
else else
@@ -1460,7 +1458,7 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest, int& cost, Scope
if (!jvSource.isMember("currency") if (!jvSource.isMember("currency")
|| !STAmount::currencyFromString(uSrcCurrencyID, jvSource["currency"].asString())) || !STAmount::currencyFromString(uSrcCurrencyID, jvSource["currency"].asString()))
{ {
cLog(lsINFO) << "Bad currency."; WriteLog (lsINFO, RPCHandler) << "Bad currency.";
return rpcError(rpcSRC_CUR_MALFORMED); return rpcError(rpcSRC_CUR_MALFORMED);
} }
@@ -1474,7 +1472,7 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest, int& cost, Scope
(uSrcIssuerID.isZero() != uSrcCurrencyID.isZero()) || (uSrcIssuerID.isZero() != uSrcCurrencyID.isZero()) ||
(ACCOUNT_ONE == uSrcIssuerID))) (ACCOUNT_ONE == uSrcIssuerID)))
{ {
cLog(lsINFO) << "Bad issuer."; WriteLog (lsINFO, RPCHandler) << "Bad issuer.";
return rpcError(rpcSRC_ISR_MALFORMED); return rpcError(rpcSRC_ISR_MALFORMED);
} }
@@ -1485,7 +1483,7 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest, int& cost, Scope
if (!bValid || !pf.findPaths(theConfig.PATH_SEARCH_SIZE, 3, spsComputed)) if (!bValid || !pf.findPaths(theConfig.PATH_SEARCH_SIZE, 3, spsComputed))
{ {
cLog(lsWARNING) << "ripple_path_find: No paths found."; WriteLog (lsWARNING, RPCHandler) << "ripple_path_find: No paths found.";
} }
else else
{ {
@@ -1521,10 +1519,10 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest, int& cost, Scope
false, // --> Allow direct ripple to be added to path set. to path set. false, // --> Allow direct ripple to be added to path set. to path set.
true); // --> Stand alone mode, no point in deleting unfundeds. true); // --> Stand alone mode, no point in deleting unfundeds.
// cLog(lsDEBUG) << "ripple_path_find: PATHS IN: " << spsComputed.size() << " : " << spsComputed.getJson(0); // WriteLog (lsDEBUG, RPCHandler) << "ripple_path_find: PATHS IN: " << spsComputed.size() << " : " << spsComputed.getJson(0);
// cLog(lsDEBUG) << "ripple_path_find: PATHS EXP: " << vpsExpanded.size(); // WriteLog (lsDEBUG, RPCHandler) << "ripple_path_find: PATHS EXP: " << vpsExpanded.size();
cLog(lsWARNING) WriteLog (lsWARNING, RPCHandler)
<< boost::str(boost::format("ripple_path_find: saMaxAmount=%s saDstAmount=%s saMaxAmountAct=%s saDstAmountAct=%s") << boost::str(boost::format("ripple_path_find: saMaxAmount=%s saDstAmount=%s saMaxAmountAct=%s saDstAmountAct=%s")
% saMaxAmount % saMaxAmount
% saDstAmount % saDstAmount
@@ -1555,7 +1553,7 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest, int& cost, Scope
transResultInfo(terResult, strToken, strHuman); transResultInfo(terResult, strToken, strHuman);
cLog(lsDEBUG) WriteLog (lsDEBUG, RPCHandler)
<< boost::str(boost::format("ripple_path_find: %s %s %s") << boost::str(boost::format("ripple_path_find: %s %s %s")
% strToken % strToken
% strHuman % strHuman
@@ -1568,7 +1566,7 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest, int& cost, Scope
jvResult["alternatives"] = jvArray; jvResult["alternatives"] = jvArray;
} }
cLog(lsDEBUG) WriteLog (lsDEBUG, RPCHandler)
<< boost::str(boost::format("ripple_path_find< %s") << boost::str(boost::format("ripple_path_find< %s")
% jvResult); % jvResult);
@@ -2025,7 +2023,7 @@ Json::Value RPCHandler::doValidationCreate(Json::Value jvRequest, int& cost, Sco
if (!jvRequest.isMember("secret")) if (!jvRequest.isMember("secret"))
{ {
cLog(lsDEBUG) << "Creating random validation seed."; WriteLog (lsDEBUG, RPCHandler) << "Creating random validation seed.";
raSeed.setSeedRandom(); // Get a random seed. raSeed.setSeedRandom(); // Get a random seed.
} }
@@ -2815,7 +2813,7 @@ Json::Value RPCHandler::doLedgerEntry(Json::Value jvRequest, int& cost, ScopedLo
|| jvRippleState["accounts"][0u].asString() == jvRippleState["accounts"][1u].asString() || jvRippleState["accounts"][0u].asString() == jvRippleState["accounts"][1u].asString()
) { ) {
cLog(lsINFO) WriteLog (lsINFO, RPCHandler)
<< boost::str(boost::format("ledger_entry: ripple_state: accounts: %d currency: %d array: %d size: %d equal: %d") << boost::str(boost::format("ledger_entry: ripple_state: accounts: %d currency: %d array: %d size: %d equal: %d")
% jvRippleState.isMember("accounts") % jvRippleState.isMember("accounts")
% jvRippleState.isMember("currency") % jvRippleState.isMember("currency")
@@ -2930,7 +2928,7 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost, ScopedLock
if (!mInfoSub && !jvRequest.isMember("url")) if (!mInfoSub && !jvRequest.isMember("url"))
{ {
// Must be a JSON-RPC call. // Must be a JSON-RPC call.
cLog(lsINFO) << boost::str(boost::format("doSubscribe: RPC subscribe requires a url")); WriteLog (lsINFO, RPCHandler) << boost::str(boost::format("doSubscribe: RPC subscribe requires a url"));
return rpcError(rpcINVALID_PARAMS); return rpcError(rpcINVALID_PARAMS);
} }
@@ -2955,14 +2953,14 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost, ScopedLock
ispSub = mNetOps->findRpcSub(strUrl); ispSub = mNetOps->findRpcSub(strUrl);
if (!ispSub) if (!ispSub)
{ {
cLog(lsDEBUG) << boost::str(boost::format("doSubscribe: building: %s") % strUrl); WriteLog (lsDEBUG, RPCHandler) << boost::str(boost::format("doSubscribe: building: %s") % strUrl);
RPCSub::pointer rspSub = boost::make_shared<RPCSub>(strUrl, strUsername, strPassword); RPCSub::pointer rspSub = boost::make_shared<RPCSub>(strUrl, strUsername, strPassword);
ispSub = mNetOps->addRpcSub(strUrl, boost::dynamic_pointer_cast<InfoSub>(rspSub)); ispSub = mNetOps->addRpcSub(strUrl, boost::dynamic_pointer_cast<InfoSub>(rspSub));
} }
else else
{ {
cLog(lsTRACE) << boost::str(boost::format("doSubscribe: reusing: %s") % strUrl); WriteLog (lsTRACE, RPCHandler) << boost::str(boost::format("doSubscribe: reusing: %s") % strUrl);
if (jvRequest.isMember("username")) if (jvRequest.isMember("username"))
dynamic_cast<RPCSub*>(&*ispSub)->setUsername(strUsername); dynamic_cast<RPCSub*>(&*ispSub)->setUsername(strUsername);
@@ -2982,7 +2980,7 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost, ScopedLock
} }
else if (!jvRequest["streams"].isArray()) else if (!jvRequest["streams"].isArray())
{ {
cLog(lsINFO) << boost::str(boost::format("doSubscribe: streams requires an array.")); WriteLog (lsINFO, RPCHandler) << boost::str(boost::format("doSubscribe: streams requires an array."));
return rpcError(rpcINVALID_PARAMS); return rpcError(rpcINVALID_PARAMS);
} }
@@ -3068,7 +3066,7 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost, ScopedLock
{ {
mNetOps->subAccount(ispSub, usnaAccoundIds, uLedgerIndex, false); mNetOps->subAccount(ispSub, usnaAccoundIds, uLedgerIndex, false);
cLog(lsDEBUG) << boost::str(boost::format("doSubscribe: accounts: %d") % usnaAccoundIds.size()); WriteLog (lsDEBUG, RPCHandler) << boost::str(boost::format("doSubscribe: accounts: %d") % usnaAccoundIds.size());
} }
} }
@@ -3109,7 +3107,7 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost, ScopedLock
if (!jvTakerPays.isMember("currency") if (!jvTakerPays.isMember("currency")
|| !STAmount::currencyFromString(uTakerPaysCurrencyID, jvTakerPays["currency"].asString())) || !STAmount::currencyFromString(uTakerPaysCurrencyID, jvTakerPays["currency"].asString()))
{ {
cLog(lsINFO) << "Bad taker_pays currency."; WriteLog (lsINFO, RPCHandler) << "Bad taker_pays currency.";
return rpcError(rpcSRC_CUR_MALFORMED); return rpcError(rpcSRC_CUR_MALFORMED);
} }
@@ -3121,7 +3119,7 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost, ScopedLock
|| (!uTakerPaysCurrencyID != !uTakerPaysIssuerID) || (!uTakerPaysCurrencyID != !uTakerPaysIssuerID)
|| ACCOUNT_ONE == uTakerPaysIssuerID) || ACCOUNT_ONE == uTakerPaysIssuerID)
{ {
cLog(lsINFO) << "Bad taker_pays issuer."; WriteLog (lsINFO, RPCHandler) << "Bad taker_pays issuer.";
return rpcError(rpcSRC_ISR_MALFORMED); return rpcError(rpcSRC_ISR_MALFORMED);
} }
@@ -3130,7 +3128,7 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost, ScopedLock
if (!jvTakerGets.isMember("currency") if (!jvTakerGets.isMember("currency")
|| !STAmount::currencyFromString(uTakerGetsCurrencyID, jvTakerGets["currency"].asString())) || !STAmount::currencyFromString(uTakerGetsCurrencyID, jvTakerGets["currency"].asString()))
{ {
cLog(lsINFO) << "Bad taker_pays currency."; WriteLog (lsINFO, RPCHandler) << "Bad taker_pays currency.";
return rpcError(rpcSRC_CUR_MALFORMED); return rpcError(rpcSRC_CUR_MALFORMED);
} }
@@ -3142,7 +3140,7 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost, ScopedLock
|| (!uTakerGetsCurrencyID != !uTakerGetsIssuerID) || (!uTakerGetsCurrencyID != !uTakerGetsIssuerID)
|| ACCOUNT_ONE == uTakerGetsIssuerID) || ACCOUNT_ONE == uTakerGetsIssuerID)
{ {
cLog(lsINFO) << "Bad taker_gets issuer."; WriteLog (lsINFO, RPCHandler) << "Bad taker_gets issuer.";
return rpcError(rpcDST_ISR_MALFORMED); return rpcError(rpcDST_ISR_MALFORMED);
} }
@@ -3150,7 +3148,7 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost, ScopedLock
if (uTakerPaysCurrencyID == uTakerGetsCurrencyID if (uTakerPaysCurrencyID == uTakerGetsCurrencyID
&& uTakerPaysIssuerID == uTakerGetsIssuerID) && uTakerPaysIssuerID == uTakerGetsIssuerID)
{ {
cLog(lsINFO) << "taker_gets same as taker_pays."; WriteLog (lsINFO, RPCHandler) << "taker_gets same as taker_pays.";
return rpcError(rpcBAD_MARKET); return rpcError(rpcBAD_MARKET);
} }
@@ -3168,7 +3166,7 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost, ScopedLock
if (!Ledger::isValidBook(uTakerPaysCurrencyID, uTakerPaysIssuerID, uTakerGetsCurrencyID, uTakerGetsIssuerID)) if (!Ledger::isValidBook(uTakerPaysCurrencyID, uTakerPaysIssuerID, uTakerGetsCurrencyID, uTakerGetsIssuerID))
{ {
cLog(lsWARNING) << "Bad market: " << WriteLog (lsWARNING, RPCHandler) << "Bad market: " <<
uTakerPaysCurrencyID << ":" << uTakerPaysIssuerID << " -> " << uTakerPaysCurrencyID << ":" << uTakerPaysIssuerID << " -> " <<
uTakerGetsCurrencyID << ":" << uTakerGetsIssuerID; uTakerGetsCurrencyID << ":" << uTakerGetsIssuerID;
return rpcError(rpcBAD_MARKET); return rpcError(rpcBAD_MARKET);
@@ -3335,7 +3333,7 @@ Json::Value RPCHandler::doUnsubscribe(Json::Value jvRequest, int& cost, ScopedLo
if (!jvTakerPays.isMember("currency") if (!jvTakerPays.isMember("currency")
|| !STAmount::currencyFromString(uTakerPaysCurrencyID, jvTakerPays["currency"].asString())) || !STAmount::currencyFromString(uTakerPaysCurrencyID, jvTakerPays["currency"].asString()))
{ {
cLog(lsINFO) << "Bad taker_pays currency."; WriteLog (lsINFO, RPCHandler) << "Bad taker_pays currency.";
return rpcError(rpcSRC_CUR_MALFORMED); return rpcError(rpcSRC_CUR_MALFORMED);
} }
@@ -3347,7 +3345,7 @@ Json::Value RPCHandler::doUnsubscribe(Json::Value jvRequest, int& cost, ScopedLo
|| (!uTakerPaysCurrencyID != !uTakerPaysIssuerID) || (!uTakerPaysCurrencyID != !uTakerPaysIssuerID)
|| ACCOUNT_ONE == uTakerPaysIssuerID) || ACCOUNT_ONE == uTakerPaysIssuerID)
{ {
cLog(lsINFO) << "Bad taker_pays issuer."; WriteLog (lsINFO, RPCHandler) << "Bad taker_pays issuer.";
return rpcError(rpcSRC_ISR_MALFORMED); return rpcError(rpcSRC_ISR_MALFORMED);
} }
@@ -3356,7 +3354,7 @@ Json::Value RPCHandler::doUnsubscribe(Json::Value jvRequest, int& cost, ScopedLo
if (!jvTakerGets.isMember("currency") if (!jvTakerGets.isMember("currency")
|| !STAmount::currencyFromString(uTakerGetsCurrencyID, jvTakerGets["currency"].asString())) || !STAmount::currencyFromString(uTakerGetsCurrencyID, jvTakerGets["currency"].asString()))
{ {
cLog(lsINFO) << "Bad taker_pays currency."; WriteLog (lsINFO, RPCHandler) << "Bad taker_pays currency.";
return rpcError(rpcSRC_CUR_MALFORMED); return rpcError(rpcSRC_CUR_MALFORMED);
} }
@@ -3368,7 +3366,7 @@ Json::Value RPCHandler::doUnsubscribe(Json::Value jvRequest, int& cost, ScopedLo
|| (!uTakerGetsCurrencyID != !uTakerGetsIssuerID) || (!uTakerGetsCurrencyID != !uTakerGetsIssuerID)
|| ACCOUNT_ONE == uTakerGetsIssuerID) || ACCOUNT_ONE == uTakerGetsIssuerID)
{ {
cLog(lsINFO) << "Bad taker_gets issuer."; WriteLog (lsINFO, RPCHandler) << "Bad taker_gets issuer.";
return rpcError(rpcDST_ISR_MALFORMED); return rpcError(rpcDST_ISR_MALFORMED);
} }
@@ -3376,7 +3374,7 @@ Json::Value RPCHandler::doUnsubscribe(Json::Value jvRequest, int& cost, ScopedLo
if (uTakerPaysCurrencyID == uTakerGetsCurrencyID if (uTakerPaysCurrencyID == uTakerGetsCurrencyID
&& uTakerPaysIssuerID == uTakerGetsIssuerID) && uTakerPaysIssuerID == uTakerGetsIssuerID)
{ {
cLog(lsINFO) << "taker_gets same as taker_pays."; WriteLog (lsINFO, RPCHandler) << "taker_gets same as taker_pays.";
return rpcError(rpcBAD_MARKET); return rpcError(rpcBAD_MARKET);
} }
@@ -3397,7 +3395,7 @@ Json::Value RPCHandler::doRpcCommand(const std::string& strMethod, Json::Value&
{ {
if (cost == 0) if (cost == 0)
cost = rpcCOST_DEFAULT; cost = rpcCOST_DEFAULT;
cLog(lsTRACE) << "doRpcCommand:" << strMethod << ":" << jvParams; WriteLog (lsTRACE, RPCHandler) << "doRpcCommand:" << strMethod << ":" << jvParams;
if (!jvParams.isArray() || jvParams.size() > 1) if (!jvParams.isArray() || jvParams.size() > 1)
return rpcError(rpcINVALID_PARAMS); return rpcError(rpcINVALID_PARAMS);
@@ -3441,7 +3439,7 @@ Json::Value RPCHandler::doCommand(const Json::Value& jvRequest, int iRole, int &
int jc = theApp->getJobQueue().getJobCountGE(jtCLIENT); int jc = theApp->getJobQueue().getJobCountGE(jtCLIENT);
if (jc > 500) if (jc > 500)
{ {
cLog(lsDEBUG) << "Too busy for command: " << jc; WriteLog (lsDEBUG, RPCHandler) << "Too busy for command: " << jc;
return rpcError(rpcTOO_BUSY); return rpcError(rpcTOO_BUSY);
} }
} }
@@ -3451,8 +3449,8 @@ Json::Value RPCHandler::doCommand(const Json::Value& jvRequest, int iRole, int &
std::string strCommand = jvRequest["command"].asString(); std::string strCommand = jvRequest["command"].asString();
cLog(lsTRACE) << "COMMAND:" << strCommand; WriteLog (lsTRACE, RPCHandler) << "COMMAND:" << strCommand;
cLog(lsTRACE) << "REQUEST:" << jvRequest; WriteLog (lsTRACE, RPCHandler) << "REQUEST:" << jvRequest;
mRole = iRole; mRole = iRole;
@@ -3547,7 +3545,7 @@ Json::Value RPCHandler::doCommand(const Json::Value& jvRequest, int iRole, int &
if ((commandsA[i].iOptions & optNetwork) && (mNetOps->getOperatingMode() < NetworkOPs::omSYNCING)) if ((commandsA[i].iOptions & optNetwork) && (mNetOps->getOperatingMode() < NetworkOPs::omSYNCING))
{ {
cLog(lsINFO) << "Insufficient network mode for RPC: " << mNetOps->strOperatingMode(); WriteLog (lsINFO, RPCHandler) << "Insufficient network mode for RPC: " << mNetOps->strOperatingMode();
return rpcError(rpcNO_NETWORK); return rpcError(rpcNO_NETWORK);
} }
@@ -3584,7 +3582,7 @@ Json::Value RPCHandler::doCommand(const Json::Value& jvRequest, int iRole, int &
} }
catch (std::exception& e) catch (std::exception& e)
{ {
cLog(lsINFO) << "Caught throw: " << e.what(); WriteLog (lsINFO, RPCHandler) << "Caught throw: " << e.what();
if (cost == rpcCOST_DEFAULT) if (cost == rpcCOST_DEFAULT)
cost = rpcCOST_EXCEPTION; cost = rpcCOST_EXCEPTION;
@@ -3608,9 +3606,9 @@ Json::Value RPCInternalHandler::runHandler(const std::string& name, const Json::
{ {
if (name == h->mName) if (name == h->mName)
{ {
cLog(lsWARNING) << "Internal command " << name << ": " << params; WriteLog (lsWARNING, RPCHandler) << "Internal command " << name << ": " << params;
Json::Value ret = h->mHandler(params); Json::Value ret = h->mHandler(params);
cLog(lsWARNING) << "Internal command returns: " << ret; WriteLog (lsWARNING, RPCHandler) << "Internal command returns: " << ret;
return ret; return ret;
} }
h = h->mNextHandler; h = h->mNextHandler;

View File

@@ -17,8 +17,6 @@
#include "../json/reader.h" #include "../json/reader.h"
#include "../json/writer.h" #include "../json/writer.h"
SETUP_LOG();
#ifndef RPC_MAXIMUM_QUERY #ifndef RPC_MAXIMUM_QUERY
#define RPC_MAXIMUM_QUERY (1024*1024) #define RPC_MAXIMUM_QUERY (1024*1024)
#endif #endif
@@ -66,7 +64,7 @@ void RPCServer::handle_read_line(const boost::system::error_code& e)
if (action == haDO_REQUEST) if (action == haDO_REQUEST)
{ // request with no body { // request with no body
cLog(lsWARNING) << "RPC HTTP request with no body"; WriteLog (lsWARNING, RPCServer) << "RPC HTTP request with no body";
boost::system::error_code ignore_ec; boost::system::error_code ignore_ec;
mSocket.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ignore_ec); mSocket.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ignore_ec);
return; return;
@@ -82,7 +80,7 @@ void RPCServer::handle_read_line(const boost::system::error_code& e)
int rLen = mHTTPRequest.getDataSize(); int rLen = mHTTPRequest.getDataSize();
if ((rLen < 0) || (rLen > RPC_MAXIMUM_QUERY)) if ((rLen < 0) || (rLen > RPC_MAXIMUM_QUERY))
{ {
cLog(lsWARNING) << "Illegal RPC request length " << rLen; WriteLog (lsWARNING, RPCServer) << "Illegal RPC request length " << rLen;
boost::system::error_code ignore_ec; boost::system::error_code ignore_ec;
mSocket.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ignore_ec); mSocket.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ignore_ec);
return; return;
@@ -95,7 +93,7 @@ void RPCServer::handle_read_line(const boost::system::error_code& e)
mQueryVec.resize(rLen - alreadyHave); mQueryVec.resize(rLen - alreadyHave);
boost::asio::async_read(mSocket, boost::asio::buffer(mQueryVec), boost::asio::async_read(mSocket, boost::asio::buffer(mQueryVec),
boost::bind(&RPCServer::handle_read_req, shared_from_this(), boost::asio::placeholders::error)); boost::bind(&RPCServer::handle_read_req, shared_from_this(), boost::asio::placeholders::error));
cLog(lsTRACE) << "Waiting for completed request: " << rLen; WriteLog (lsTRACE, RPCServer) << "Waiting for completed request: " << rLen;
} }
else else
{ // we have the whole thing { // we have the whole thing
@@ -112,7 +110,7 @@ void RPCServer::handle_read_line(const boost::system::error_code& e)
std::string RPCServer::handleRequest(const std::string& requestStr) std::string RPCServer::handleRequest(const std::string& requestStr)
{ {
cLog(lsTRACE) << "handleRequest " << requestStr; WriteLog (lsTRACE, RPCServer) << "handleRequest " << requestStr;
Json::Value id; Json::Value id;
@@ -163,10 +161,10 @@ std::string RPCServer::handleRequest(const std::string& requestStr)
RPCHandler mRPCHandler(mNetOps); RPCHandler mRPCHandler(mNetOps);
cLog(lsTRACE) << valParams; WriteLog (lsTRACE, RPCServer) << valParams;
int cost = 10; int cost = 10;
Json::Value result = mRPCHandler.doRpcCommand(strMethod, valParams, mRole, cost); Json::Value result = mRPCHandler.doRpcCommand(strMethod, valParams, mRole, cost);
cLog(lsTRACE) << result; WriteLog (lsTRACE, RPCServer) << result;
std::string strReply = JSONRPCReply(result, Json::Value(), id); std::string strReply = JSONRPCReply(result, Json::Value(), id);
return HTTPReply(200, strReply); return HTTPReply(200, strReply);

View File

@@ -5,8 +5,6 @@
#include "CallRPC.h" #include "CallRPC.h"
SETUP_LOG();
RPCSub::RPCSub(const std::string& strUrl, const std::string& strUsername, const std::string& strPassword) RPCSub::RPCSub(const std::string& strUrl, const std::string& strUsername, const std::string& strPassword)
: mUrl(strUrl), mSSL(false), mUsername(strUsername), mPassword(strPassword), mSending(false) : mUrl(strUrl), mSSL(false), mUsername(strUsername), mPassword(strPassword), mSending(false)
{ {
@@ -30,7 +28,7 @@ RPCSub::RPCSub(const std::string& strUrl, const std::string& strUsername, const
if (mPort < 0) if (mPort < 0)
mPort = mSSL ? 443 : 80; mPort = mSSL ? 443 : 80;
cLog(lsINFO) << boost::str(boost::format("callRPC sub: ip='%s' port=%d ssl=%d path='%s'") WriteLog (lsINFO, RPCSub) << boost::str(boost::format("callRPC sub: ip='%s' port=%d ssl=%d path='%s'")
% mIp % mIp
% mPort % mPort
% mSSL % mSSL
@@ -73,7 +71,7 @@ void RPCSub::sendThread()
// XXX Might not need this in a try. // XXX Might not need this in a try.
try try
{ {
cLog(lsINFO) << boost::str(boost::format("callRPC calling: %s") % mIp); WriteLog (lsINFO, RPCSub) << boost::str(boost::format("callRPC calling: %s") % mIp);
callRPC( callRPC(
theApp->getIOService(), theApp->getIOService(),
@@ -85,7 +83,7 @@ void RPCSub::sendThread()
} }
catch (const std::exception& e) catch (const std::exception& e)
{ {
cLog(lsINFO) << boost::str(boost::format("callRPC exception: %s") % e.what()); WriteLog (lsINFO, RPCSub) << boost::str(boost::format("callRPC exception: %s") % e.what());
} }
} }
} while (bSend); } while (bSend);
@@ -98,11 +96,11 @@ void RPCSub::send(const Json::Value& jvObj, bool broadcast)
if (RPC_EVENT_QUEUE_MAX == mDeque.size()) if (RPC_EVENT_QUEUE_MAX == mDeque.size())
{ {
// Drop the previous event. // Drop the previous event.
cLog(lsWARNING) << boost::str(boost::format("callRPC drop")); WriteLog (lsWARNING, RPCSub) << boost::str(boost::format("callRPC drop"));
mDeque.pop_back(); mDeque.pop_back();
} }
cLog(broadcast ? lsDEBUG : lsINFO) << boost::str(boost::format("callRPC push: %s") % jvObj); WriteLog (broadcast ? lsDEBUG : lsINFO, RPCSub) << boost::str(boost::format("callRPC push: %s") % jvObj);
mDeque.push_back(std::make_pair(mSeq++, jvObj)); mDeque.push_back(std::make_pair(mSeq++, jvObj));
@@ -111,7 +109,7 @@ void RPCSub::send(const Json::Value& jvObj, bool broadcast)
// Start a sending thread. // Start a sending thread.
mSending = true; mSending = true;
cLog(lsINFO) << boost::str(boost::format("callRPC start")); WriteLog (lsINFO, RPCSub) << boost::str(boost::format("callRPC start"));
boost::thread(boost::bind(&RPCSub::sendThread, this)).detach(); boost::thread(boost::bind(&RPCSub::sendThread, this)).detach();
} }
} }

View File

@@ -17,7 +17,10 @@
#include "Log.h" #include "Log.h"
#include "Version.h" #include "Version.h"
SETUP_LOG(); // Used for logging
struct RPC
{
};
using namespace boost; using namespace boost;
using namespace boost::asio; using namespace boost::asio;
@@ -77,7 +80,7 @@ std::string rfc1123Time()
std::string HTTPReply(int nStatus, const std::string& strMsg) std::string HTTPReply(int nStatus, const std::string& strMsg)
{ {
cLog(lsTRACE) << "HTTP Reply " << nStatus << " " << strMsg; WriteLog (lsTRACE, RPC) << "HTTP Reply " << nStatus << " " << strMsg;
if (nStatus == 401) if (nStatus == 401)
return strprintf("HTTP/1.0 401 Authorization Required\r\n" return strprintf("HTTP/1.0 401 Authorization Required\r\n"