Move HttpsClient to ripple_net

This commit is contained in:
Vinnie Falco
2013-07-08 18:33:22 -07:00
parent 4094316940
commit 2a29d3b0da
7 changed files with 55 additions and 31 deletions

View File

@@ -358,6 +358,12 @@
<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="..\..\modules\ripple_net\client\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="..\..\modules\ripple_net\ripple_net.cpp" /> <ClCompile Include="..\..\modules\ripple_net\ripple_net.cpp" />
<ClCompile Include="..\..\modules\ripple_sqlite\ripple_sqlite.c" /> <ClCompile Include="..\..\modules\ripple_sqlite\ripple_sqlite.c" />
<ClCompile Include="..\..\modules\ripple_websocket\autosocket\ripple_AutoSocket.cpp"> <ClCompile Include="..\..\modules\ripple_websocket\autosocket\ripple_AutoSocket.cpp">
@@ -398,12 +404,6 @@
<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\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\Interpreter.cpp"> <ClCompile Include="..\..\src\cpp\ripple\Interpreter.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>
@@ -1391,6 +1391,7 @@
<ClInclude Include="..\..\modules\ripple_json\ripple_json.h" /> <ClInclude Include="..\..\modules\ripple_json\ripple_json.h" />
<ClInclude Include="..\..\modules\ripple_leveldb\ripple_leveldb.h" /> <ClInclude Include="..\..\modules\ripple_leveldb\ripple_leveldb.h" />
<ClInclude Include="..\..\modules\ripple_net\basics\ripple_HTTPRequest.h" /> <ClInclude Include="..\..\modules\ripple_net\basics\ripple_HTTPRequest.h" />
<ClInclude Include="..\..\modules\ripple_net\client\ripple_HttpsClient.h" />
<ClInclude Include="..\..\modules\ripple_net\ripple_net.h" /> <ClInclude Include="..\..\modules\ripple_net\ripple_net.h" />
<ClInclude Include="..\..\modules\ripple_sqlite\ripple_sqlite.h" /> <ClInclude Include="..\..\modules\ripple_sqlite\ripple_sqlite.h" />
<ClInclude Include="..\..\modules\ripple_websocket\autosocket\ripple_AutoSocket.h" /> <ClInclude Include="..\..\modules\ripple_websocket\autosocket\ripple_AutoSocket.h" />
@@ -1399,7 +1400,6 @@
<ClInclude Include="..\..\src\cpp\ripple\CallRPC.h" /> <ClInclude Include="..\..\src\cpp\ripple\CallRPC.h" />
<ClInclude Include="..\..\src\cpp\ripple\ChangeTransactor.h" /> <ClInclude Include="..\..\src\cpp\ripple\ChangeTransactor.h" />
<ClInclude Include="..\..\src\cpp\ripple\Contract.h" /> <ClInclude Include="..\..\src\cpp\ripple\Contract.h" />
<ClInclude Include="..\..\src\cpp\ripple\HttpsClient.h" />
<ClInclude Include="..\..\src\cpp\ripple\Interpreter.h" /> <ClInclude Include="..\..\src\cpp\ripple\Interpreter.h" />
<ClInclude Include="..\..\src\cpp\ripple\Ledger.h" /> <ClInclude Include="..\..\src\cpp\ripple\Ledger.h" />
<ClInclude Include="..\..\src\cpp\ripple\LedgerMaster.h" /> <ClInclude Include="..\..\src\cpp\ripple\LedgerMaster.h" />

View File

@@ -672,9 +672,6 @@
<ClCompile Include="..\..\src\cpp\ripple\ripple_Validations.cpp"> <ClCompile Include="..\..\src\cpp\ripple\ripple_Validations.cpp">
<Filter>[1] Ripple\ripple_app\_misc</Filter> <Filter>[1] Ripple\ripple_app\_misc</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\HttpsClient.cpp">
<Filter>[1] Ripple\ripple_app\_network</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\SNTPClient.cpp"> <ClCompile Include="..\..\src\cpp\ripple\SNTPClient.cpp">
<Filter>[1] Ripple\ripple_app\_network</Filter> <Filter>[1] Ripple\ripple_app\_network</Filter>
</ClCompile> </ClCompile>
@@ -852,6 +849,9 @@
<ClCompile Include="..\..\src\cpp\ripple\RPCServer.cpp"> <ClCompile Include="..\..\src\cpp\ripple\RPCServer.cpp">
<Filter>[1] Ripple\ripple_app\_network</Filter> <Filter>[1] Ripple\ripple_app\_network</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\modules\ripple_net\client\ripple_HttpsClient.cpp">
<Filter>[1] Ripple\ripple_net\client</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\Subtrees\sqlite\sqlite3.h"> <ClInclude Include="..\..\Subtrees\sqlite\sqlite3.h">
@@ -1401,9 +1401,6 @@
<ClInclude Include="..\..\src\cpp\ripple\ripple_SerializedTransaction.h"> <ClInclude Include="..\..\src\cpp\ripple\ripple_SerializedTransaction.h">
<Filter>[1] Ripple\ripple_app\_misc</Filter> <Filter>[1] Ripple\ripple_app\_misc</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\HttpsClient.h">
<Filter>[1] Ripple\ripple_app\_network</Filter>
</ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\SNTPClient.h"> <ClInclude Include="..\..\src\cpp\ripple\SNTPClient.h">
<Filter>[1] Ripple\ripple_app\_network</Filter> <Filter>[1] Ripple\ripple_app\_network</Filter>
</ClInclude> </ClInclude>
@@ -1584,6 +1581,9 @@
<ClInclude Include="..\..\src\cpp\ripple\RPCServer.h"> <ClInclude Include="..\..\src\cpp\ripple\RPCServer.h">
<Filter>[1] Ripple\ripple_app\_network</Filter> <Filter>[1] Ripple\ripple_app\_network</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\modules\ripple_net\client\ripple_HttpsClient.h">
<Filter>[1] Ripple\ripple_net\client</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<CustomBuild Include="..\..\src\cpp\ripple\ripple.proto" /> <CustomBuild Include="..\..\src\cpp\ripple\ripple.proto" />

View File

@@ -153,7 +153,6 @@ namespace ripple
#include "src/cpp/ripple/CallRPC.h" #include "src/cpp/ripple/CallRPC.h"
#include "src/cpp/ripple/Transactor.h" #include "src/cpp/ripple/Transactor.h"
#include "src/cpp/ripple/ChangeTransactor.h" #include "src/cpp/ripple/ChangeTransactor.h"
#include "src/cpp/ripple/HttpsClient.h"
#include "src/cpp/ripple/ripple_TransactionAcquire.h" #include "src/cpp/ripple/ripple_TransactionAcquire.h"
#include "src/cpp/ripple/ripple_DisputedTx.h" #include "src/cpp/ripple/ripple_DisputedTx.h"
#include "src/cpp/ripple/ripple_LedgerConsensus.h" #include "src/cpp/ripple/ripple_LedgerConsensus.h"
@@ -378,7 +377,6 @@ static DH* handleTmpDh (SSL* ssl, int is_export, int iKeyLength)
#include "src/cpp/ripple/ripple_LedgerConsensus.cpp" #include "src/cpp/ripple/ripple_LedgerConsensus.cpp"
#include "src/cpp/ripple/LedgerMaster.cpp" #include "src/cpp/ripple/LedgerMaster.cpp"
#include "src/cpp/ripple/HttpsClient.cpp"
#include "src/cpp/ripple/ripple_InfoSub.cpp" #include "src/cpp/ripple/ripple_InfoSub.cpp"
#include "src/cpp/ripple/ripple_OrderBook.cpp" #include "src/cpp/ripple/ripple_OrderBook.cpp"

View File

@@ -10,6 +10,9 @@
SETUP_LOG (HttpsClient) SETUP_LOG (HttpsClient)
// VFALCO NOTE Why use theConfig.SSL_CONTEXT instead of just passing it?
// TODO Remove all theConfig deps from this file
//
HttpsClient::HttpsClient (boost::asio::io_service& io_service, HttpsClient::HttpsClient (boost::asio::io_service& io_service,
const unsigned short port, const unsigned short port,
std::size_t responseMax) std::size_t responseMax)
@@ -313,11 +316,18 @@ void HttpsClient::handleHeader (const boost::system::error_code& ecResult, std::
mResponseMax = size; mResponseMax = size;
} }
if (mResponseMax == 0) // no body wanted or available if (mResponseMax == 0)
{
// no body wanted or available
invokeComplete (ecResult, mStatus); invokeComplete (ecResult, mStatus);
else if (mBody.size () >= mResponseMax) // we got the whole thing }
else if (mBody.size () >= mResponseMax)
{
// we got the whole thing
invokeComplete (ecResult, mStatus, mBody); invokeComplete (ecResult, mStatus, mBody);
}
else else
{
mSocket.async_read ( mSocket.async_read (
mResponse.prepare (mResponseMax - mBody.size ()), mResponse.prepare (mResponseMax - mBody.size ()),
boost::asio::transfer_all (), boost::asio::transfer_all (),
@@ -325,6 +335,7 @@ void HttpsClient::handleHeader (const boost::system::error_code& ecResult, std::
shared_from_this (), shared_from_this (),
boost::asio::placeholders::error, boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred)); boost::asio::placeholders::bytes_transferred));
}
} }
void HttpsClient::handleData (const boost::system::error_code& ecResult, std::size_t bytes_transferred) void HttpsClient::handleData (const boost::system::error_code& ecResult, std::size_t bytes_transferred)

View File

@@ -4,12 +4,11 @@
*/ */
//============================================================================== //==============================================================================
#ifndef _HTTPS_CLIENT_ #ifndef RIPPLE_HTTPSCLIENT_H_INCLUDED
#define _HTTPS_CLIENT_ #define RIPPLE_HTTPSCLIENT_H_INCLUDED
// /** Provides an asynchronous HTTPS client implementation.
// Async https client. */
//
class HttpsClient class HttpsClient
: public boost::enable_shared_from_this <HttpsClient> : public boost::enable_shared_from_this <HttpsClient>
@@ -22,29 +21,36 @@ public:
std::size_t responseMax std::size_t responseMax
); );
// VFALCO NOTE Putting "https" is redundant, the class is
// already called HttpsClient.
//
// VFALCO TODO Rename these to request, get, and next.
//
void httpsRequest ( void httpsRequest (
bool bSSL, bool bSSL,
std::deque<std::string> deqSites, std::deque<std::string> deqSites,
FUNCTION_TYPE<void (boost::asio::streambuf& sb, const std::string& strHost)> build, FUNCTION_TYPE <void (boost::asio::streambuf& sb, const std::string& strHost)> build,
boost::posix_time::time_duration timeout, boost::posix_time::time_duration timeout,
FUNCTION_TYPE<bool (const boost::system::error_code& ecResult, int iStatus, const std::string& strData)> complete); FUNCTION_TYPE <bool (const boost::system::error_code& ecResult, int iStatus, const std::string& strData)> complete);
void httpsGet ( void httpsGet (
bool bSSL, bool bSSL,
std::deque<std::string> deqSites, std::deque<std::string> deqSites,
const std::string& strPath, const std::string& strPath,
boost::posix_time::time_duration timeout, boost::posix_time::time_duration timeout,
FUNCTION_TYPE<bool (const boost::system::error_code& ecResult, int iStatus, const std::string& strData)> complete); FUNCTION_TYPE <bool (const boost::system::error_code& ecResult, int iStatus, const std::string& strData)> complete);
// VFALCO TODO These statics all belong in some HttpsClientOperations class
//
static void httpsGet ( static void httpsGet (
bool bSSL, bool bSSL,
boost::asio::io_service& io_service, boost::asio::io_service& io_service,
std::deque<std::string> deqSites, std::deque <std::string> deqSites,
const unsigned short port, const unsigned short port,
const std::string& strPath, const std::string& strPath,
std::size_t responseMax, std::size_t responseMax,
boost::posix_time::time_duration timeout, boost::posix_time::time_duration timeout,
FUNCTION_TYPE<bool (const boost::system::error_code& ecResult, int iStatus, const std::string& strData)> complete); FUNCTION_TYPE <bool (const boost::system::error_code& ecResult, int iStatus, const std::string& strData)> complete);
static void httpsGet ( static void httpsGet (
bool bSSL, bool bSSL,
@@ -54,17 +60,17 @@ public:
const std::string& strPath, const std::string& strPath,
std::size_t responseMax, std::size_t responseMax,
boost::posix_time::time_duration timeout, boost::posix_time::time_duration timeout,
FUNCTION_TYPE<bool (const boost::system::error_code& ecResult, int iStatus, const std::string& strData)> complete); FUNCTION_TYPE <bool (const boost::system::error_code& ecResult, int iStatus, const std::string& strData)> complete);
static void httpsRequest ( static void httpsRequest (
bool bSSL, bool bSSL,
boost::asio::io_service& io_service, boost::asio::io_service& io_service,
std::string strSite, std::string strSite,
const unsigned short port, const unsigned short port,
FUNCTION_TYPE<void (boost::asio::streambuf& sb, const std::string& strHost)> build, FUNCTION_TYPE <void (boost::asio::streambuf& sb, const std::string& strHost)> build,
std::size_t responseMax, std::size_t responseMax,
boost::posix_time::time_duration timeout, boost::posix_time::time_duration timeout,
FUNCTION_TYPE<bool (const boost::system::error_code& ecResult, int iStatus, const std::string& strData)> complete); FUNCTION_TYPE <bool (const boost::system::error_code& ecResult, int iStatus, const std::string& strData)> complete);
static void sendSMS (boost::asio::io_service& io_service, const std::string& strText); static void sendSMS (boost::asio::io_service& io_service, const std::string& strText);
@@ -119,4 +125,4 @@ private:
}; };
#endif #endif
// vim:ts=4

View File

@@ -14,9 +14,14 @@
#include "ripple_net.h" #include "ripple_net.h"
// VFALCO TODO Remove this dependency on theConfig
#include "../modules/ripple_core/ripple_core.h" // theConfig for HttpsClient
namespace ripple namespace ripple
{ {
#include "basics/ripple_HTTPRequest.cpp" #include "basics/ripple_HTTPRequest.cpp"
#include "client/ripple_HttpsClient.cpp"
} }

View File

@@ -22,11 +22,15 @@
#include "../ripple_basics/ripple_basics.h" #include "../ripple_basics/ripple_basics.h"
#include "../ripple_websocket/ripple_websocket.h"
namespace ripple namespace ripple
{ {
#include "basics/ripple_HTTPRequest.h" #include "basics/ripple_HTTPRequest.h"
#include "client/ripple_HttpsClient.h"
} }
#endif #endif