workaround for a nasty CLN bug
authorMorgan Deters <mdeters@gmail.com>
Tue, 2 Oct 2012 02:57:59 +0000 (02:57 +0000)
committerMorgan Deters <mdeters@gmail.com>
Tue, 2 Oct 2012 02:57:59 +0000 (02:57 +0000)
src/util/integer_cln_imp.h

index 5dfcae6d2793baf86aaa0e9a0cf15fad953695b7..b86e0240c35e58876c4b72653294094e10f8d9bb 100644 (file)
@@ -60,7 +60,12 @@ private:
 
   void readInt(const cln::cl_read_flags& flags, const std::string& s, unsigned base) throw(std::invalid_argument) {
     try {
-      d_value = read_integer(flags, s.c_str(), NULL, NULL);
+      if(s.find_first_not_of('0') == std::string::npos) {
+        // string of all zeroes, CLN has a bug for these inputs
+        d_value = read_integer(flags, "0", NULL, NULL);
+      } else {
+        d_value = read_integer(flags, s.c_str(), NULL, NULL);
+      }
     } catch(...) {
       std::stringstream ss;
       ss << "Integer() failed to parse value \"" << s << "\" in base " << base;