tMerge pull request #1339 from kyuupichan/daemon - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 9e84d12a6f43b24529397b889af26e8daf478eb7 DIR parent 9fc9c5e4f462028057598b6e126add3f92c2b30a HTML Author: ThomasV <electrumdev@gmail.com> Date: Fri, 3 Jul 2015 09:41:21 +0200 Merge pull request #1339 from kyuupichan/daemon Avoid string representation issues, fix #1338 Diffstat: M lib/daemon.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) --- DIR diff --git a/lib/daemon.py b/lib/daemon.py t@@ -24,6 +24,7 @@ import threading import traceback import json import Queue +from collections import defaultdict import util from network import Network t@@ -73,7 +74,7 @@ class ClientThread(util.DaemonThread): self.client_pipe = util.SocketPipe(s) self.response_queue = Queue.Queue() self.server.add_client(self) - self.subscriptions = set() + self.subscriptions = defaultdict(list) def reading_thread(self): while self.is_running(): t@@ -90,7 +91,7 @@ class ClientThread(util.DaemonThread): self.server.stop() continue if method[-10:] == '.subscribe': - self.subscriptions.add(repr((method, params))) + self.subscriptions[method].append(params) self.server.send_request(self, request) def run(self): t@@ -167,7 +168,7 @@ class NetworkServer(util.DaemonThread): m = response.get('method') v = response.get('params') for client in self.clients: - if repr((m, v)) in client.subscriptions or m == 'network.status': + if m == 'network.status' or v in client.subscriptions.get(m, []): client.response_queue.put(response) self.network.stop() print_error("server exiting")