From ab3e2daac089ed833162088f72862040bf34bf23 Mon Sep 17 00:00:00 2001 From: Forrest Voight Date: Sun, 23 Jun 2013 22:07:25 -0400 Subject: [PATCH] cleaned up worker username parsing - order of parameters no longer matters --- p2pool/work.py | 32 ++++++++++++++++++-------------- 1 files changed, 18 insertions(+), 14 deletions(-) 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 -- 1.7.1