mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-27 22:45:52 +00:00
Remove KnownNodeList completely and remove pugi from build.
This commit is contained in:
@@ -52,7 +52,6 @@ DB_SRCS = glob.glob('database/*.c') + glob.glob('database/*.cpp')
|
||||
JSON_SRCS = glob.glob('json/*.cpp')
|
||||
NEWCOIN_SRCS = glob.glob('src/*.cpp')
|
||||
PROTO_SRCS = env.Protoc([], 'src/newcoin.proto', PROTOCOUTDIR='obj', PROTOCPYTHONOUTDIR=None)
|
||||
UTIL_SRCS = glob.glob('util/*.cpp')
|
||||
|
||||
env.Clean(PROTO_SRCS, 'site_scons/site_tools/protoc.pyc')
|
||||
|
||||
@@ -62,7 +61,7 @@ UNUSED_SRCS = ['src/HttpReply.cpp', 'src/ValidationCollection.cpp']
|
||||
for file in UNUSED_SRCS:
|
||||
NEWCOIN_SRCS.remove(file)
|
||||
|
||||
NEWCOIN_SRCS += DB_SRCS + JSON_SRCS + UTIL_SRCS
|
||||
NEWCOIN_SRCS += DB_SRCS + JSON_SRCS
|
||||
|
||||
# Derive the object files from the source files.
|
||||
NEWCOIN_OBJS = []
|
||||
|
||||
@@ -93,7 +93,7 @@ void Application::run()
|
||||
mRPCDoor=new RPCDoor(mIOService);
|
||||
}//else BOOST_LOG_TRIVIAL(info) << "No RPC Port set. Not listening for commands.";
|
||||
|
||||
mConnectionPool.connectToNetwork(mKnownNodes, mIOService);
|
||||
mConnectionPool.connectToNetwork(mIOService);
|
||||
mTimingService.start(mIOService);
|
||||
|
||||
std::cout << "Before Run." << std::endl;
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
#include "UniqueNodeList.h"
|
||||
#include "ConnectionPool.h"
|
||||
#include "KnownNodeList.h"
|
||||
#include "TimingService.h"
|
||||
#include "PubKeyCache.h"
|
||||
#include "ScopedLock.h"
|
||||
@@ -42,7 +41,6 @@ class Application
|
||||
|
||||
TimingService mTimingService;
|
||||
UniqueNodeList mUNL;
|
||||
KnownNodeList mKnownNodes;
|
||||
PubKeyCache mPKCache;
|
||||
LedgerMaster mMasterLedger;
|
||||
LedgerAcquireMaster mMasterLedgerAcquire;
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
#include "ConnectionPool.h"
|
||||
#include "Config.h"
|
||||
#include "KnownNodeList.h"
|
||||
#include "Peer.h"
|
||||
#include "Application.h"
|
||||
|
||||
@@ -13,30 +12,20 @@ ConnectionPool::ConnectionPool()
|
||||
{ ; }
|
||||
|
||||
|
||||
void ConnectionPool::connectToNetwork(KnownNodeList& nodeList,boost::asio::io_service& io_service)
|
||||
void ConnectionPool::connectToNetwork(boost::asio::io_service& io_service)
|
||||
{
|
||||
#if 0
|
||||
for(int n=0; n<theConfig.NUMBER_CONNECTIONS; n++)
|
||||
{
|
||||
KnownNode* node=nodeList.getNextNode();
|
||||
if(!node) return;
|
||||
|
||||
|
||||
Peer::pointer peer=Peer::create(io_service);
|
||||
// peer->connectTo(*node); // FIXME
|
||||
mPeers.push_back(peer);
|
||||
|
||||
}
|
||||
#endif
|
||||
}
|
||||
/*
|
||||
bool ConnectionPool::isMessageKnown(PackedMessage::pointer msg)
|
||||
{
|
||||
for(unsigned int n=0; n<mBroadcastMessages.size(); n++)
|
||||
{
|
||||
if(msg==mBroadcastMessages[n].first) return(false);
|
||||
}
|
||||
return(false);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
void ConnectionPool::relayMessage(Peer* fromPeer, PackedMessage::pointer msg)
|
||||
{
|
||||
@@ -47,41 +36,6 @@ void ConnectionPool::relayMessage(Peer* fromPeer, PackedMessage::pointer msg)
|
||||
}
|
||||
}
|
||||
|
||||
bool ConnectionPool::addToMap(const uint160& hanko, Peer::pointer peer)
|
||||
{
|
||||
boost::mutex::scoped_lock sl(peerLock);
|
||||
return peerMap.insert(std::make_pair(hanko, peer)).second;
|
||||
}
|
||||
|
||||
bool ConnectionPool::delFromMap(const uint160& hanko)
|
||||
{
|
||||
boost::mutex::scoped_lock sl(peerLock);
|
||||
std::map<uint160, Peer::pointer>::iterator it=peerMap.find(hanko);
|
||||
if((it==peerMap.end()) || (it->first!=hanko)) return false;
|
||||
peerMap.erase(it);
|
||||
return true;
|
||||
}
|
||||
|
||||
Peer::pointer ConnectionPool::findInMap(const uint160& hanko)
|
||||
{
|
||||
boost::mutex::scoped_lock sl(peerLock);
|
||||
std::map<uint160, Peer::pointer>::iterator it=peerMap.find(hanko);
|
||||
if(it==peerMap.end()) return Peer::pointer();
|
||||
return it->second;
|
||||
}
|
||||
|
||||
bool ConnectionPool::inMap(const uint160& hanko)
|
||||
{
|
||||
boost::mutex::scoped_lock sl(peerLock);
|
||||
return peerMap.find(hanko) != peerMap.end();
|
||||
}
|
||||
|
||||
std::map<uint160, Peer::pointer> ConnectionPool::getAllConnected()
|
||||
{
|
||||
boost::mutex::scoped_lock sl(peerLock);
|
||||
return peerMap;
|
||||
}
|
||||
|
||||
bool ConnectionPool::connectTo(const std::string& host, const std::string& port)
|
||||
{
|
||||
try
|
||||
@@ -120,4 +74,56 @@ Json::Value ConnectionPool::getPeersJson()
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void ConnectionPool::peerDisconnected(NewcoinAddress naPeer)
|
||||
{
|
||||
std::cerr << "ConnectionPool::peerDisconnected" << std::cerr;
|
||||
}
|
||||
|
||||
#if 0
|
||||
bool ConnectionPool::addToMap(const uint160& hanko, Peer::pointer peer)
|
||||
{
|
||||
boost::mutex::scoped_lock sl(peerLock);
|
||||
return peerMap.insert(std::make_pair(hanko, peer)).second;
|
||||
}
|
||||
|
||||
bool ConnectionPool::delFromMap(const uint160& hanko)
|
||||
{
|
||||
boost::mutex::scoped_lock sl(peerLock);
|
||||
std::map<uint160, Peer::pointer>::iterator it=peerMap.find(hanko);
|
||||
if((it==peerMap.end()) || (it->first!=hanko)) return false;
|
||||
peerMap.erase(it);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ConnectionPool::inMap(const uint160& hanko)
|
||||
{
|
||||
boost::mutex::scoped_lock sl(peerLock);
|
||||
return peerMap.find(hanko) != peerMap.end();
|
||||
}
|
||||
|
||||
std::map<uint160, Peer::pointer> ConnectionPool::getAllConnected()
|
||||
{
|
||||
boost::mutex::scoped_lock sl(peerLock);
|
||||
return peerMap;
|
||||
}
|
||||
|
||||
Peer::pointer ConnectionPool::findInMap(const uint160& hanko)
|
||||
{
|
||||
boost::mutex::scoped_lock sl(peerLock);
|
||||
std::map<uint160, Peer::pointer>::iterator it=peerMap.find(hanko);
|
||||
if(it==peerMap.end()) return Peer::pointer();
|
||||
return it->second;
|
||||
}
|
||||
|
||||
bool ConnectionPool::isMessageKnown(PackedMessage::pointer msg)
|
||||
{
|
||||
for(unsigned int n=0; n<mBroadcastMessages.size(); n++)
|
||||
{
|
||||
if(msg==mBroadcastMessages[n].first) return(false);
|
||||
}
|
||||
return(false);
|
||||
}
|
||||
#endif
|
||||
|
||||
// vim:ts=4
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
#include "PackedMessage.h"
|
||||
#include "types.h"
|
||||
|
||||
class KnownNodeList;
|
||||
|
||||
/*
|
||||
This is the list of all the Peers we are currently connected to
|
||||
*/
|
||||
@@ -18,24 +16,34 @@ class ConnectionPool
|
||||
boost::mutex peerLock;
|
||||
std::vector<Peer::pointer> mPeers; // FIXME
|
||||
std::map<uint160, Peer::pointer> peerMap;
|
||||
//std::vector<std::pair<PackedMessage::pointer,int> > mBroadcastMessages;
|
||||
|
||||
public:
|
||||
ConnectionPool();
|
||||
void connectToNetwork(KnownNodeList& nodeList, boost::asio::io_service& io_service);
|
||||
void connectToNetwork(boost::asio::io_service& io_service);
|
||||
void relayMessage(Peer* fromPeer, PackedMessage::pointer msg);
|
||||
//bool isMessageKnown(PackedMessage::pointer msg);
|
||||
|
||||
// hanko->peer mapping functions
|
||||
bool inMap(const uint160& hanko);
|
||||
bool addToMap(const uint160& hanko, Peer::pointer peer);
|
||||
bool delFromMap(const uint160& hanko);
|
||||
Peer::pointer findInMap(const uint160& hanko);
|
||||
std::map<uint160, Peer::pointer> getAllConnected();
|
||||
|
||||
// Manual connection request.
|
||||
// Queue for immediate scanning.
|
||||
bool connectTo(const std::string& host, const std::string& port);
|
||||
|
||||
// Peer notification routines.
|
||||
void peerDisconnected(NewcoinAddress naPeer);
|
||||
|
||||
Json::Value getPeersJson();
|
||||
|
||||
#if 0
|
||||
//std::vector<std::pair<PackedMessage::pointer,int> > mBroadcastMessages;
|
||||
|
||||
bool isMessageKnown(PackedMessage::pointer msg);
|
||||
|
||||
// hanko->peer mapping functions
|
||||
bool addToMap(const uint160& hanko, Peer::pointer peer);
|
||||
bool delFromMap(const uint160& hanko);
|
||||
|
||||
bool inMap(const uint160& hanko);
|
||||
std::map<uint160, Peer::pointer> getAllConnected();
|
||||
Peer::pointer findInMap(const uint160& hanko);
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
#include "KnownNodeList.h"
|
||||
#include "../util/pugixml.hpp"
|
||||
|
||||
using namespace pugi;
|
||||
|
||||
KnownNode::KnownNode(const char* ip,int port,int lastSeen,int lastTried)
|
||||
: mIP(ip), mPort(port), mLastSeen(lastSeen), mLastTried(lastTried)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
KnownNodeList::KnownNodeList()
|
||||
{
|
||||
mTriedIndex=0;
|
||||
}
|
||||
|
||||
void KnownNodeList::load()
|
||||
{
|
||||
xml_document doc;
|
||||
xml_parse_result result = doc.load_file("nodes.xml");
|
||||
xml_node nodes=doc.child("nodes");
|
||||
for(xml_node child = nodes.first_child(); child; child = child.next_sibling())
|
||||
{
|
||||
mNodes.push_back(KnownNode(child.attribute("ip").value(),child.attribute("port").as_int(),child.attribute("last").as_int(),0));
|
||||
}
|
||||
}
|
||||
|
||||
KnownNode* KnownNodeList::getNextNode()
|
||||
{
|
||||
if(mTriedIndex>=mNodes.size())
|
||||
{
|
||||
return(NULL);
|
||||
}else
|
||||
{
|
||||
mTriedIndex++;
|
||||
return(&(mNodes[mTriedIndex-1]));
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
#ifndef __KNOWNNODELIST__
|
||||
#define __KNOWNNODELIST__
|
||||
|
||||
#include "vector"
|
||||
#include <string>
|
||||
|
||||
class KnownNode
|
||||
{
|
||||
public:
|
||||
std::string mIP;
|
||||
int mPort;
|
||||
int mLastSeen;
|
||||
int mLastTried;
|
||||
|
||||
KnownNode(const char* ip,int port,int lastSeen,int lastTried);
|
||||
};
|
||||
|
||||
class KnownNodeList
|
||||
{
|
||||
unsigned int mTriedIndex;
|
||||
std::vector <KnownNode> mNodes;
|
||||
public:
|
||||
KnownNodeList();
|
||||
|
||||
void load();
|
||||
void addNode();
|
||||
KnownNode* getNextNode();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
11
src/Peer.cpp
11
src/Peer.cpp
@@ -10,7 +10,6 @@
|
||||
#include "../json/writer.h"
|
||||
|
||||
#include "Peer.h"
|
||||
#include "KnownNodeList.h"
|
||||
#include "Config.h"
|
||||
#include "Application.h"
|
||||
#include "Conversion.h"
|
||||
@@ -53,7 +52,9 @@ void Peer::detach()
|
||||
{
|
||||
mSendQ.clear();
|
||||
mSocket.close();
|
||||
if(!!mHanko) theApp->getConnectionPool().delFromMap(mHanko);
|
||||
|
||||
// XXX Insufficient need to ip and port.
|
||||
if(mPublicKey.IsValid()) theApp->getConnectionPool().peerDisconnected(mPublicKey);
|
||||
}
|
||||
|
||||
void Peer::connected(const boost::system::error_code& error)
|
||||
@@ -551,9 +552,9 @@ void Peer::punishPeer(PeerPunish)
|
||||
Json::Value Peer::getJson() {
|
||||
Json::Value ret(Json::objectValue);
|
||||
|
||||
ret["ip"] = mSocket.remote_endpoint().address().to_string();
|
||||
ret["port"] = mSocket.remote_endpoint().port();
|
||||
ret["hanko"] = mHanko.ToString();
|
||||
ret["ip"] = mSocket.remote_endpoint().address().to_string();
|
||||
ret["port"] = mSocket.remote_endpoint().port();
|
||||
ret["public_key"] = mPublicKey.ToString();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ protected:
|
||||
std::list<PackedMessage::pointer> mSendQ;
|
||||
PackedMessage::pointer mSendingPacket;
|
||||
std::bitset<32> mPeerBits;
|
||||
uint160 mHanko;
|
||||
NewcoinAddress mPublicKey; // Public key of peer.
|
||||
|
||||
Peer(boost::asio::io_service& io_service);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user