From df9cd35032577cc6cbcf951e16e20eb9d6892fd8 Mon Sep 17 00:00:00 2001 From: Carlos Alberto Lopez Perez Date: Thu, 7 Jul 2011 06:41:05 +0200 Subject: [PATCH 1/2] Don't exit on wrong username/password. Keep trying with the other servers --- BitcoinMiner.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/BitcoinMiner.py b/BitcoinMiner.py index 3d877ee..32c0365 100644 --- a/BitcoinMiner.py +++ b/BitcoinMiner.py @@ -256,7 +256,15 @@ def getwork(self, data=None): self.failback_attempt_count = 0 return result['result'] except NotAuthorized: - self.failure('Wrong username or password') + self.say('Wrong username or password') + if self.backup_pool_index >= len(self.servers): + self.sayLine("No more backup pools left. Using primary and starting over.") + pool = self.servers[0] + self.backup_pool_index = 1 + else: + pool = self.servers[self.backup_pool_index] + self.backup_pool_index += 1 + self.setpool(pool) except RPCError as e: self.say('%s', e) except (IOError, httplib.HTTPException, ValueError): From 0e557a1605a364caab50e9dc9def7eddb2285455 Mon Sep 17 00:00:00 2001 From: Carlos Alberto Lopez Perez Date: Thu, 7 Jul 2011 14:55:24 +0200 Subject: [PATCH 2/2] Better handle the NotAuthorized exception in the blockcode below --- BitcoinMiner.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/BitcoinMiner.py b/BitcoinMiner.py index 32c0365..7ac508e 100644 --- a/BitcoinMiner.py +++ b/BitcoinMiner.py @@ -255,26 +255,24 @@ def getwork(self, data=None): self.failback_getwork_count = 0 self.failback_attempt_count = 0 return result['result'] - except NotAuthorized: - self.say('Wrong username or password') - if self.backup_pool_index >= len(self.servers): - self.sayLine("No more backup pools left. Using primary and starting over.") - pool = self.servers[0] - self.backup_pool_index = 1 - else: - pool = self.servers[self.backup_pool_index] - self.backup_pool_index += 1 - self.setpool(pool) except RPCError as e: self.say('%s', e) - except (IOError, httplib.HTTPException, ValueError): + except (IOError, httplib.HTTPException, ValueError, NotAuthorized) as e: if save_pool: self.failback_attempt_count += 1 self.setpool(save_pool) self.sayLine('Still unable to reconnect to primary pool (attempt %s), failing over', self.failback_attempt_count) self.failback_getwork_count = 0 return - self.say('Problems communicating with bitcoin RPC %s %s', (self.errors, self.options.tolerance)) + + self.say('%s %s %s', ( + if_else((type(e).__name__ == "NotAuthorized"), + 'Wrong username or password', + 'Problems communicating with bitcoin RPC'), + self.errors, + self.options.tolerance) + ) + self.errors += 1 if self.errors > self.options.tolerance+1: self.errors = 0