summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--node/NetworkConfig.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/node/NetworkConfig.cpp b/node/NetworkConfig.cpp
index 491c9493..82e986e2 100644
--- a/node/NetworkConfig.cpp
+++ b/node/NetworkConfig.cpp
@@ -210,7 +210,14 @@ bool NetworkConfig::operator==(const NetworkConfig &nc) const
if (_description != nc._description) return false;
if (_staticIps != nc._staticIps) return false;
if (_activeBridges != nc._activeBridges) return false;
- if (_multicastRates != nc._multicastRates) return false;
+ if (_multicastRates.size() == nc._multicastRates.size()) {
+ // uclibc++ doesn't seem to implement map<> != map<> correctly, so do
+ // it ourselves. Note that this depends on the maps being sorted.
+ for(std::map<MulticastGroup,MulticastRate>::const_iterator a(_multicastRates.begin()),b(nc._multicastRates.begin());a!=_multicastRates.end();++a,++b) {
+ if ((a->first != b->first)||(a->second != b->second))
+ return false;
+ }
+ } else return false;
if (_com != nc._com) return false;
return true;
}