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
|
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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user