avoid breaking asicminer BE blade with too-long getwork response
authorForrest Voight <forrest@forre.st>
Sun, 30 Jun 2013 19:19:45 +0000 (15:19 -0400)
committerForrest Voight <forrest@forre.st>
Sun, 30 Jun 2013 19:19:45 +0000 (15:19 -0400)
p2pool/bitcoin/worker_interface.py

index 600c556..7ae1951 100644 (file)
@@ -97,7 +97,14 @@ class WorkerInterface(object):
         if p2pool.DEBUG:
             print 'POLL %i END identifier=%i' % (id, self.worker_bridge.new_work_event.times)
         
-        defer.returnValue(res.getwork(identifier=str(self.worker_bridge.new_work_event.times), submitold=True))
+        extra_params = {}
+        if request.getHeader('User-Agent') == 'Jephis PIC Miner':
+            # ASICMINER BE Blades apparently have a buffer overflow bug and
+            # can't handle much extra in the getwork response
+            extra_params = {}
+        else:
+            extra_params = dict(identifier=str(self.worker_bridge.new_work_event.times), submitold=True)
+        defer.returnValue(res.getwork(**extra_params))
 
 class CachingWorkerBridge(object):
     def __init__(self, inner):