mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-27 06:25:51 +00:00
Add utility function for RPCServer
This commit is contained in:
6
TODO.txt
6
TODO.txt
@@ -2,6 +2,12 @@
|
||||
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
|
||||
* Determine why rippled has a slow startup on Windows
|
||||
* Improve the performance when running all unit tests on Windows
|
||||
|
||||
@@ -281,6 +281,17 @@ private:
|
||||
boost::asio::placeholders::error)));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
std::string getRemoteAddressText ()
|
||||
{
|
||||
std::string address;
|
||||
|
||||
address = mSocket.PlainSocket ().remote_endpoint ().address ().to_string ();
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
private:
|
||||
NetworkOPs* const mNetOps;
|
||||
|
||||
|
||||
@@ -28,6 +28,12 @@ public:
|
||||
virtual boost::asio::ip::tcp::socket& getRawSocket () = 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
|
||||
|
||||
@@ -43,6 +43,8 @@ bool RPCDoor::isClientAllowed (const std::string& ip)
|
||||
if (theConfig.RPC_ALLOW_REMOTE)
|
||||
return true;
|
||||
|
||||
// VFALCO TODO Represent ip addresses as a structure. Use isLoopback() member here
|
||||
//
|
||||
if (ip == "127.0.0.1")
|
||||
return true;
|
||||
|
||||
@@ -58,7 +60,7 @@ void RPCDoor::handleConnect (RPCServer::pointer new_connection, const boost::sys
|
||||
// Restrict callers by IP
|
||||
try
|
||||
{
|
||||
if (!isClientAllowed (new_connection->getRawSocket ().remote_endpoint ().address ().to_string ()))
|
||||
if (! isClientAllowed (new_connection->getRemoteAddressText ()))
|
||||
{
|
||||
startListening ();
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user