From 09ff99faa05574c8a0845cbfd47c5f3993eeeee6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Wed, 30 Sep 2015 22:42:38 -0400
Subject: [PATCH] scanner: handle search failure

---
 python/tools/scanner.py | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/python/tools/scanner.py b/python/tools/scanner.py
index 4b9a3069..d58d9e44 100755
--- a/python/tools/scanner.py
+++ b/python/tools/scanner.py
@@ -114,20 +114,23 @@ def step(cur_h, cur_depth):
 
 def nextstep(cur_h, cur_depth, ok, nodes, arc=None, lines=[]):
     global done, all_nodes
-    if arc:
-        arc.remove()
-        del arc
-    for l in lines:
-        l.set_color('#444444')
-    snodes = NodeSet()
-    snodes.extend(nodes)
-    all_nodes.extend(nodes)
-    depth = min(6, InfoHash.commonBits(snodes.first(), snodes.last())+4)
-    if cur_depth < depth:
-        for b in range(cur_depth, depth):
-            new_h = InfoHash(cur_h.toString());
-            new_h.setBit(b, 1);
-            step(new_h, b+1);
+    if nodes:
+        if arc:
+            arc.remove()
+            del arc
+        for l in lines:
+            l.set_color('#444444')
+        snodes = NodeSet()
+        snodes.extend(nodes)
+        all_nodes.extend(nodes)
+        depth = min(6, InfoHash.commonBits(snodes.first(), snodes.last())+4)
+        if cur_depth < depth:
+            for b in range(cur_depth, depth):
+                new_h = InfoHash(cur_h.toString());
+                new_h.setBit(b, 1);
+                step(new_h, b+1);
+    else:
+        print("step done with no nodes", ok, cur_h.toString().decode())
     done -= 1
 
 run = True
-- 
GitLab