Add utility function for RPCServer

This commit is contained in:
Vinnie Falco
2013-07-09 12:37:18 -07:00
parent 140c0d102b
commit 040c8f4de1
4 changed files with 26 additions and 1 deletions

View File

@@ -2,6 +2,12 @@
RIPPLE TODO RIPPLE TODO
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
- Maybe rename RPCServer to RPCClientServicer
- Take away the "I" prefix from abstract interface classes, in both the class
name and the file name. It is messing up sorting in the IDE. Use "Imp" or
suffix for implementations.
- Profile/VTune the application to identify hot spots - Profile/VTune the application to identify hot spots
* Determine why rippled has a slow startup on Windows * Determine why rippled has a slow startup on Windows
* Improve the performance when running all unit tests on Windows * Improve the performance when running all unit tests on Windows

View File

@@ -281,6 +281,17 @@ private:
boost::asio::placeholders::error))); boost::asio::placeholders::error)));
} }
//--------------------------------------------------------------------------
std::string getRemoteAddressText ()
{
std::string address;
address = mSocket.PlainSocket ().remote_endpoint ().address ().to_string ();
return address;
}
private: private:
NetworkOPs* const mNetOps; NetworkOPs* const mNetOps;

View File

@@ -28,6 +28,12 @@ public:
virtual boost::asio::ip::tcp::socket& getRawSocket () = 0; virtual boost::asio::ip::tcp::socket& getRawSocket () = 0;
virtual void connected () = 0; virtual void connected () = 0;
/** Retrieve the remote address as a string.
@return A std::string representing the remote address.
*/
virtual std::string getRemoteAddressText () = 0;
}; };
#endif #endif

View File

@@ -43,6 +43,8 @@ bool RPCDoor::isClientAllowed (const std::string& ip)
if (theConfig.RPC_ALLOW_REMOTE) if (theConfig.RPC_ALLOW_REMOTE)
return true; return true;
// VFALCO TODO Represent ip addresses as a structure. Use isLoopback() member here
//
if (ip == "127.0.0.1") if (ip == "127.0.0.1")
return true; return true;
@@ -58,7 +60,7 @@ void RPCDoor::handleConnect (RPCServer::pointer new_connection, const boost::sys
// Restrict callers by IP // Restrict callers by IP
try try
{ {
if (!isClientAllowed (new_connection->getRawSocket ().remote_endpoint ().address ().to_string ())) if (! isClientAllowed (new_connection->getRemoteAddressText ()))
{ {
startListening (); startListening ();
return; return;