tell users to upgrade bitcoin when RPC getmemorypool returns "Method not found"
[p2pool.git] / p2pool / util / deferral.py
index 28589ca..072d559 100644 (file)
@@ -10,6 +10,9 @@ def sleep(t):
     reactor.callLater(t, d.callback, None)
     return d
 
+class RetrySilentlyException(Exception):
+    pass
+
 def retry(message, delay, max_retries=None):
     '''
     @retry('Error getting block:', 1)
@@ -24,10 +27,11 @@ def retry(message, delay, max_retries=None):
             for i in itertools.count():
                 try:
                     result = yield func(*args, **kwargs)
-                except:
+                except Exception, e:
                     if i == max_retries:
                         raise
-                    log.err(None, message)
+                    if not isinstance(e, RetrySilentlyException):
+                        log.err(None, message)
                     yield sleep(delay)
                 else:
                     defer.returnValue(result)