diff options
Diffstat (limited to 'node')
-rw-r--r-- | node/Dictionary.hpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/node/Dictionary.hpp b/node/Dictionary.hpp index 8628bc44..1e643788 100644 --- a/node/Dictionary.hpp +++ b/node/Dictionary.hpp @@ -33,7 +33,7 @@ #include <string> #include <map> #include <stdexcept> - + #include "Constants.hpp" #include "Utils.hpp" @@ -305,6 +305,21 @@ public: */ bool verify(const Identity &id) const; + inline bool operator==(const Dictionary &d) const + { + // std::map::operator== is broken on uclibc++ + if (size() != d.size()) + return false; + const_iterator a(begin()); + const_iterator b(d.begin()); + while (a != end()) { + if (*(a++) != *(b++)) + return false; + } + return true; + } + inline bool operator!=(const Dictionary &d) const { return (!(*this == d)); } + private: void _mkSigBuf(std::string &buf) const; static void _appendEsc(const char *data,unsigned int len,std::string &to); |