diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-05-23 15:13:34 -0700 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-05-23 15:13:34 -0700 |
| commit | 31ddc49da2e8c8aa9345616af28c9643968a8393 (patch) | |
| tree | e5b7e6b55ccd2e8ec0d98fc65c9c490a511e428e /node/UnixEthernetTap.cpp | |
| parent | 317995b921c96ce62ce17adb90b94e84c6e5e9d3 (diff) | |
| download | infinitytier-31ddc49da2e8c8aa9345616af28c9643968a8393.tar.gz infinitytier-31ddc49da2e8c8aa9345616af28c9643968a8393.zip | |
GitHub issue #67
Diffstat (limited to 'node/UnixEthernetTap.cpp')
| -rw-r--r-- | node/UnixEthernetTap.cpp | 8 |
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; |
