diff --git a/SConstruct b/SConstruct
index a656f1f01..ef0806738 100644
--- a/SConstruct
+++ b/SConstruct
@@ -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 = []
diff --git a/nodes.xml b/nodes.xml
deleted file mode 100644
index b8b1e8fb5..000000000
--- a/nodes.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/src/Application.cpp b/src/Application.cpp
index f4ebf63fd..6e6ab57fa 100644
--- a/src/Application.cpp
+++ b/src/Application.cpp
@@ -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;
diff --git a/src/Application.h b/src/Application.h
index 76bb5718c..b1023b1ea 100644
--- a/src/Application.h
+++ b/src/Application.h
@@ -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;
diff --git a/src/ConnectionPool.cpp b/src/ConnectionPool.cpp
index 5208a20b7..4196db6c9 100644
--- a/src/ConnectionPool.cpp
+++ b/src/ConnectionPool.cpp
@@ -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; nconnectTo(*node); // FIXME
mPeers.push_back(peer);
-
}
+#endif
}
-/*
-bool ConnectionPool::isMessageKnown(PackedMessage::pointer msg)
-{
- for(unsigned int n=0; n::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::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 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::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 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::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 mPeers; // FIXME
std::map peerMap;
- //std::vector > 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 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 > 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 getAllConnected();
+ Peer::pointer findInMap(const uint160& hanko);
+#endif
};
#endif
diff --git a/src/KnownNodeList.cpp b/src/KnownNodeList.cpp
deleted file mode 100644
index e170935bc..000000000
--- a/src/KnownNodeList.cpp
+++ /dev/null
@@ -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]));
- }
-}
diff --git a/src/KnownNodeList.h b/src/KnownNodeList.h
deleted file mode 100644
index 6609314cc..000000000
--- a/src/KnownNodeList.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __KNOWNNODELIST__
-#define __KNOWNNODELIST__
-
-#include "vector"
-#include
-
-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 mNodes;
-public:
- KnownNodeList();
-
- void load();
- void addNode();
- KnownNode* getNextNode();
-
-};
-
-#endif
\ No newline at end of file
diff --git a/src/Peer.cpp b/src/Peer.cpp
index a5ae451eb..8fa8e351e 100644
--- a/src/Peer.cpp
+++ b/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;
}
diff --git a/src/Peer.h b/src/Peer.h
index 5ca7464e4..f90412fec 100644
--- a/src/Peer.h
+++ b/src/Peer.h
@@ -31,7 +31,7 @@ protected:
std::list mSendQ;
PackedMessage::pointer mSendingPacket;
std::bitset<32> mPeerBits;
- uint160 mHanko;
+ NewcoinAddress mPublicKey; // Public key of peer.
Peer(boost::asio::io_service& io_service);