summaryrefslogtreecommitdiff
path: root/node/Topology.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/Topology.cpp')
-rw-r--r--node/Topology.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/node/Topology.cpp b/node/Topology.cpp
index 031c0b1b..5e086116 100644
--- a/node/Topology.cpp
+++ b/node/Topology.cpp
@@ -120,10 +120,12 @@ Topology::~Topology()
SharedPtr<Peer> Topology::addPeer(const SharedPtr<Peer> &peer)
{
- if (peer->address() == RR->identity.address()) {
- TRACE("BUG: addPeer() caught and ignored attempt to add peer for self");
- throw std::logic_error("cannot add peer for self");
+#ifdef ZT_TRACE
+ if ((!peer)||(peer->address() == RR->identity.address())) {
+ TRACE("BUG: addPeer() caught and ignored attempt to add peer for self or add a NULL peer");
+ abort();
}
+#endif
SharedPtr<Peer> np;
{
@@ -133,6 +135,7 @@ SharedPtr<Peer> Topology::addPeer(const SharedPtr<Peer> &peer)
hp = peer;
np = hp;
}
+
np->use(RR->node->now());
saveIdentity(np->identity());
@@ -321,8 +324,7 @@ unsigned long Topology::countActive() const
Address *a = (Address *)0;
SharedPtr<Peer> *p = (SharedPtr<Peer> *)0;
while (i.next(a,p)) {
- if ((*p)->hasActiveDirectPath(now))
- ++cnt;
+ cnt += (unsigned long)((*p)->hasActiveDirectPath(now));
}
return cnt;
}