From c6a39929162ea5e32b1c640e1b7b271d0c6e6747 Mon Sep 17 00:00:00 2001
From: Inso <insomniak.fr@gmail.com>
Date: Fri, 13 Nov 2015 17:53:21 +0100
Subject: [PATCH] Fix bug with filter nodes and account registration

---
 src/cutecoin/core/account.py               | 3 ++-
 src/cutecoin/core/net/api/bma/access.py    | 9 ++++++---
 src/cutecoin/main.py                       | 2 +-
 src/cutecoin/tests/core/test_bma_access.py | 3 +++
 4 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/cutecoin/core/account.py b/src/cutecoin/core/account.py
index 3c70fb74..ae4868ab 100644
--- a/src/cutecoin/core/account.py
+++ b/src/cutecoin/core/account.py
@@ -361,7 +361,8 @@ class Account(QObject):
                 try:
                     data = yield from community.bma_access.simple_request(request,
                                                                           req_args={'search': search})
-                    registered = parsers[request](data)
+                    if data:
+                        registered = parsers[request](data)
                     tries += 1
                 except ValueError as e:
                     if '404' in str(e) or '400' in str(e):
diff --git a/src/cutecoin/core/net/api/bma/access.py b/src/cutecoin/core/net/api/bma/access.py
index 778133ba..9c4210cf 100644
--- a/src/cutecoin/core/net/api/bma/access.py
+++ b/src/cutecoin/core/net/api/bma/access.py
@@ -197,9 +197,12 @@ class BmaAccess(QObject):
 
     def filter_nodes(self, request, nodes):
         def compare_versions(node, version):
-            try:
-                return StrictVersion(node.version) > StrictVersion(version)
-            except TypeError:
+            if node.version and node.version != '':
+                try:
+                    return StrictVersion(node.version) > StrictVersion(version)
+                except TypeError:
+                    return False
+            else:
                 return False
         filters = {
             bma.ud.History: lambda n: compare_versions(n, "0.11.0"),
diff --git a/src/cutecoin/main.py b/src/cutecoin/main.py
index 962f95cb..fff3fc89 100755
--- a/src/cutecoin/main.py
+++ b/src/cutecoin/main.py
@@ -42,7 +42,7 @@ def async_exception_handler(loop, context):
 
     logging.error('\n'.join(log_lines), exc_info=exc_info)
     if "Unclosed" not in message and \
-        "gaierror(-2" not in message:
+        "socket.gaierror" not in message:
         os._exit(1)
 
 
diff --git a/src/cutecoin/tests/core/test_bma_access.py b/src/cutecoin/tests/core/test_bma_access.py
index cb24e97f..f1f0c83e 100644
--- a/src/cutecoin/tests/core/test_bma_access.py
+++ b/src/cutecoin/tests/core/test_bma_access.py
@@ -48,6 +48,9 @@ class TestBmaAccess(unittest.TestCase):
         res = self.bma_access._compare_json({}, corrupted.bma_null_data)
         self.assertFalse(res)
 
+    def test_filter_nodes(self):
+        pass#TODO
+
 if __name__ == '__main__':
     logging.basicConfig(stream=sys.stderr)
     logging.getLogger().setLevel(logging.DEBUG)
-- 
GitLab