From: Forrest Voight Date: Mon, 24 Jun 2013 02:07:25 +0000 (-0400) Subject: cleaned up worker username parsing - order of parameters no longer matters X-Git-Tag: 13.0~18 X-Git-Url: https://git.novaco.in/?p=p2pool.git;a=commitdiff_plain;h=ab3e2daac089ed833162088f72862040bf34bf23 cleaned up worker username parsing - order of parameters no longer matters --- diff --git a/p2pool/work.py b/p2pool/work.py index e8cbbec..57ff996 100644 --- a/p2pool/work.py +++ b/p2pool/work.py @@ -2,6 +2,7 @@ from __future__ import division import base64 import random +import re import sys import time @@ -134,22 +135,25 @@ class WorkerBridge(worker_interface.WorkerBridge): return (my_shares_not_in_chain - my_doa_shares_not_in_chain, my_doa_shares_not_in_chain), my_shares, (orphans_recorded_in_chain, doas_recorded_in_chain) - def get_user_details(self, user): - desired_pseudoshare_target = None - if '+' in user: - user, desired_pseudoshare_difficulty_str = user.rsplit('+', 1) - try: - desired_pseudoshare_target = bitcoin_data.difficulty_to_target(float(desired_pseudoshare_difficulty_str)) - except: - pass + def get_user_details(self, username): + contents = re.split('[+/]', username) + assert len(contents) % 2 == 1 + user, contents2 = contents[0], contents[1:] + + desired_pseudoshare_target = None desired_share_target = 2**256 - 1 - if '/' in user: - user, min_diff_str = user.rsplit('/', 1) - try: - desired_share_target = bitcoin_data.difficulty_to_target(float(min_diff_str)) - except: - pass + for symbol, parameter in zip(contents2[::2], contents2[1::2]): + if symbol == '+': + try: + desired_pseudoshare_target = bitcoin_data.difficulty_to_target(float(parameter)) + except: + pass + elif symbol == '/': + try: + desired_share_target = bitcoin_data.difficulty_to_target(float(min_diff_str)) + except: + pass if random.uniform(0, 100) < self.worker_fee: pubkey_hash = self.my_pubkey_hash