diff options
Diffstat (limited to 'node')
-rw-r--r-- | node/Network.cpp | 18 | ||||
-rw-r--r-- | node/Network.hpp | 45 |
2 files changed, 7 insertions, 56 deletions
diff --git a/node/Network.cpp b/node/Network.cpp index 11e7c455..bc651661 100644 --- a/node/Network.cpp +++ b/node/Network.cpp @@ -80,21 +80,15 @@ bool Network::Certificate::qualifyMembership(const Network::Certificate &mc) con // indicates a floating point comparison. Otherwise an integer // comparison occurs. if (deltaField->second.find('.') != std::string::npos) { - double my = strtod(myField->second.c_str(),(char **)0); - double their = strtod(theirField->second.c_str(),(char **)0); - double delta = strtod(deltaField->second.c_str(),(char **)0); + double my = Utils::strToDouble(myField->second.c_str()); + double their = Utils::strToDouble(theirField->second.c_str()); + double delta = Utils::strToDouble(deltaField->second.c_str()); if (fabs(my - their) > delta) return false; } else { -#ifdef __WINDOWS__ - int64_t my = _strtoi64(myField->second.c_str(),(char **)0,10); - int64_t their = _strtoi64(theirField->second.c_str(),(char **)0,10); - int64_t delta = _strtoi64(deltaField->second.c_str(),(char **)0,10); -#else - int64_t my = strtoll(myField->second.c_str(),(char **)0,10); - int64_t their = strtoll(theirField->second.c_str(),(char **)0,10); - int64_t delta = strtoll(deltaField->second.c_str(),(char **)0,10); -#endif + uint64_t my = Utils::hexStrToU64(myField->second.c_str()); + uint64_t their = Utils::hexStrToU64(theirField->second.c_str()); + uint64_t delta = Utils::hexStrToU64(deltaField->second.c_str()); if (my > their) { if ((my - their) > delta) return false; diff --git a/node/Network.hpp b/node/Network.hpp index 6340c049..6e79705d 100644 --- a/node/Network.hpp +++ b/node/Network.hpp @@ -91,49 +91,6 @@ public: Certificate(const std::string &s) : Dictionary(s) {} inline std::string toString() const { return Dictionary::toString(); } - inline void setNetworkId(uint64_t id) - { - char buf[32]; - Utils::snprintf(buf,sizeof(buf),"%.16llx",(unsigned long long)id); - (*this)["nwid"] = buf; - } - - inline uint64_t networkId() const - throw(std::invalid_argument) - { -#ifdef __WINDOWS__ - return _strtoui64(get("nwid").c_str(),(char **)0,16); -#else - return strtoull(get("nwid").c_str(),(char **)0,16); -#endif - } - - inline void setPeerAddress(Address &a) - { - (*this)["peer"] = a.toString(); - } - - inline Address peerAddress() const - throw(std::invalid_argument) - { - return Address(get("peer")); - } - - /** - * Set the timestamp and timestamp max-delta - * - * @param ts Timestamp in ms since epoch - * @param maxDelta Maximum difference between two peers on the same network - */ - inline void setTimestamp(uint64_t ts,uint64_t maxDelta) - { - char foo[32]; - Utils::snprintf(foo,sizeof(foo),"%llu",(unsigned long long)ts); - (*this)["ts"] = foo; - Utils::snprintf(foo,sizeof(foo),"%llu",(unsigned long long)maxDelta); - (*this)["~ts"] = foo; - } - /** * Sign this certificate * @@ -381,7 +338,7 @@ public: if (!Utils::scopy(tmp,sizeof(tmp),get("et","").c_str())) return et; // sanity check, packet can't really be that big for(char *f=Utils::stok(tmp,",",&saveptr);(f);f=Utils::stok((char *)0,",",&saveptr)) { - unsigned int t = Utils::strToUInt(f); + unsigned int t = Utils::hexStrToUInt(f); if (t) et.insert(t); } |