diff options
-rw-r--r-- | node/NetworkConfig.cpp | 9 |
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; } |