summaryrefslogtreecommitdiff
path: root/node/Switch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/Switch.cpp')
-rw-r--r--node/Switch.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/node/Switch.cpp b/node/Switch.cpp
index f471700c..55c21f09 100644
--- a/node/Switch.cpp
+++ b/node/Switch.cpp
@@ -438,14 +438,17 @@ void Switch::announceMulticastGroups(const SharedPtr<Peer> &peer)
void Switch::requestWhois(const Address &addr)
{
- TRACE("requesting WHOIS for %s",addr.toString().c_str());
+ //TRACE("requesting WHOIS for %s",addr.toString().c_str());
+ bool inserted = false;
{
Mutex::Lock _l(_outstandingWhoisRequests_m);
std::pair< std::map< Address,WhoisRequest >::iterator,bool > entry(_outstandingWhoisRequests.insert(std::pair<Address,WhoisRequest>(addr,WhoisRequest())));
- entry.first->second.lastSent = Utils::now();
+ if ((inserted = entry.second))
+ entry.first->second.lastSent = Utils::now();
entry.first->second.retries = 0; // reset retry count if entry already existed
}
- _sendWhoisRequest(addr,(const Address *)0,0);
+ if (inserted)
+ _sendWhoisRequest(addr,(const Address *)0,0);
}
void Switch::doAnythingWaitingForPeer(const SharedPtr<Peer> &peer)