summaryrefslogtreecommitdiff
path: root/node/UnixEthernetTap.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-05-23 15:13:34 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-05-23 15:13:34 -0700
commit31ddc49da2e8c8aa9345616af28c9643968a8393 (patch)
treee5b7e6b55ccd2e8ec0d98fc65c9c490a511e428e /node/UnixEthernetTap.cpp
parent317995b921c96ce62ce17adb90b94e84c6e5e9d3 (diff)
downloadinfinitytier-31ddc49da2e8c8aa9345616af28c9643968a8393.tar.gz
infinitytier-31ddc49da2e8c8aa9345616af28c9643968a8393.zip
GitHub issue #67
Diffstat (limited to 'node/UnixEthernetTap.cpp')
-rw-r--r--node/UnixEthernetTap.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/node/UnixEthernetTap.cpp b/node/UnixEthernetTap.cpp
index 4f9291ac..36bb7442 100644
--- a/node/UnixEthernetTap.cpp
+++ b/node/UnixEthernetTap.cpp
@@ -710,8 +710,6 @@ bool UnixEthernetTap::updateMulticastGroups(std::set<MulticastGroup> &groups)
bool changed = false;
- newGroups.insert(_blindWildcardMulticastGroup); // always join this
-
for(std::set<MulticastGroup>::iterator mg(newGroups.begin());mg!=newGroups.end();++mg) {
if (!groups.count(*mg)) {
groups.insert(*mg);
@@ -719,7 +717,7 @@ bool UnixEthernetTap::updateMulticastGroups(std::set<MulticastGroup> &groups)
}
}
for(std::set<MulticastGroup>::iterator mg(groups.begin());mg!=groups.end();) {
- if (!newGroups.count(*mg)) {
+ if ((!newGroups.count(*mg))&&(*mg != _blindWildcardMulticastGroup)) {
groups.erase(mg++);
changed = true;
} else ++mg;
@@ -934,8 +932,6 @@ bool UnixEthernetTap::updateMulticastGroups(std::set<MulticastGroup> &groups)
bool changed = false;
- newGroups.insert(_blindWildcardMulticastGroup); // always join this
-
for(std::set<MulticastGroup>::iterator mg(newGroups.begin());mg!=newGroups.end();++mg) {
if (!groups.count(*mg)) {
groups.insert(*mg);
@@ -943,7 +939,7 @@ bool UnixEthernetTap::updateMulticastGroups(std::set<MulticastGroup> &groups)
}
}
for(std::set<MulticastGroup>::iterator mg(groups.begin());mg!=groups.end();) {
- if (!newGroups.count(*mg)) {
+ if ((!newGroups.count(*mg))&&(*mg != _blindWildcardMulticastGroup)) {
groups.erase(mg++);
changed = true;
} else ++mg;