summaryrefslogtreecommitdiff
path: root/node/Peer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/Peer.cpp')
-rw-r--r--node/Peer.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/node/Peer.cpp b/node/Peer.cpp
index ab287d05..c56dbca9 100644
--- a/node/Peer.cpp
+++ b/node/Peer.cpp
@@ -339,7 +339,9 @@ bool Peer::resetWithinScope(InetAddress::IpScope scope,uint64_t now)
++x;
}
_numPaths = y;
- return (y < np);
+ while (y < ZT_MAX_PEER_NETWORK_PATHS)
+ _paths[y++].path.zero(); // let go of unused SmartPtr<>'s
+ return (_numPaths < np);
}
void Peer::getBestActiveAddresses(uint64_t now,InetAddress &v4,InetAddress &v6) const
@@ -390,6 +392,8 @@ void Peer::clean(uint64_t now)
++x;
}
_numPaths = y;
+ while (y < ZT_MAX_PEER_NETWORK_PATHS)
+ _paths[y++].path.zero(); // let go of unused SmartPtr<>'s
}
bool Peer::_pushDirectPaths(const SharedPtr<Path> &path,uint64_t now)