summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--node/Network.cpp23
1 files changed, 7 insertions, 16 deletions
diff --git a/node/Network.cpp b/node/Network.cpp
index fb31f87c..43f3f1fa 100644
--- a/node/Network.cpp
+++ b/node/Network.cpp
@@ -148,23 +148,14 @@ void Network::multicastSubscribe(const MulticastGroup &mg)
void Network::multicastUnsubscribe(const MulticastGroup &mg)
{
- bool needAnnounce = false;
- {
- Mutex::Lock _l(_lock);
-
- std::vector<MulticastGroup> nmg;
- for(std::vector<MulticastGroup>::const_iterator i(_myMulticastGroups.begin());i!=_myMulticastGroups.end();++i) {
- if (*i != mg)
- nmg.push_back(*i);
- }
-
- if (nmg.size() != _myMulticastGroups.size()) {
- _myMulticastGroups.swap(nmg);
- needAnnounce = true;
- }
+ Mutex::Lock _l(_lock);
+ std::vector<MulticastGroup> nmg;
+ for(std::vector<MulticastGroup>::const_iterator i(_myMulticastGroups.begin());i!=_myMulticastGroups.end();++i) {
+ if (*i != mg)
+ nmg.push_back(*i);
}
- if (needAnnounce)
- _announceMulticastGroups();
+ if (nmg.size() != _myMulticastGroups.size())
+ _myMulticastGroups.swap(nmg);
}
bool Network::applyConfiguration(const SharedPtr<NetworkConfig> &conf)