From a92c552cb893495de62a2c594f3aac34ee643bb0 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Thu, 29 Mar 2012 01:02:06 +0400 Subject: [PATCH] fix for http server --- processor.py | 54 +++++++++++++++++++------------------------ transports/stratum_http.py | 9 +++---- 2 files changed, 28 insertions(+), 35 deletions(-) diff --git a/processor.py b/processor.py index 1fd7909..a18594d 100644 --- a/processor.py +++ b/processor.py @@ -66,42 +66,36 @@ class Processor(threading.Thread): raise TypeError("self.shared not set in Processor") while not self.shared.stopped(): session, request = self.pop_request() - - method = request['method'] - params = request.get('params',[]) - - suffix = method.split('.')[-1] - if suffix == 'subscribe': - session.subscribe_to_service(method, params) - - # store session and id locally - request['id'] = self.store_session_id(session, request['id']) - - # dispatch request to the relevant module.. - prefix = method.split('.')[0] - try: - func = self.processors[prefix] - except: - print "error: no processor for", prefix - continue - - try: - func(request,self.response_queue) - except: - traceback.print_exc(file=sys.stdout) - continue + self.process(session, request) self.stop() def stop(self): pass - def process(self, request): - print "New request", request - # Do stuff... - # response = request - # When ready, you call - # self.push_response(response) + def process(self, session, request): + method = request['method'] + params = request.get('params',[]) + + suffix = method.split('.')[-1] + if suffix == 'subscribe': + session.subscribe_to_service(method, params) + + # store session and id locally + request['id'] = self.store_session_id(session, request['id']) + + # dispatch request to the relevant module.. + prefix = request['method'].split('.')[0] + try: + func = self.processors[prefix] + except: + print "error: no processor for", prefix + return + try: + func(request,self.response_queue) + except: + traceback.print_exc(file=sys.stdout) + def add_session(self, session): with self.lock: diff --git a/transports/stratum_http.py b/transports/stratum_http.py index 499628b..7a8ece2 100644 --- a/transports/stratum_http.py +++ b/transports/stratum_http.py @@ -355,8 +355,9 @@ class HttpServer(threading.Thread): from SocketServer import ThreadingMixIn class StratumThreadedJSONRPCServer(ThreadingMixIn, StratumJSONRPCServer): pass self.server = StratumThreadedJSONRPCServer(( self.host, self.port)) - for s in ['server.peers', 'server.banner', 'transaction.broadcast', \ - 'address.get_history','address.subscribe', 'numblocks.subscribe', 'client.version']: + for s in ['server.peers.subscribe', 'server.banner', 'blockchain.transaction.broadcast', \ + 'blockchain.address.get_history','blockchain.address.subscribe', \ + 'blockchain.numblocks.subscribe', 'client.version' ]: self.server.register_function(self.process, s) self.server.register_function(self.do_stop, 'stop') @@ -369,9 +370,7 @@ class HttpServer(threading.Thread): #print session, request session = self.server.sessions.get(session_id) if session: - #print "zz",session_id,session - request['id'] = self.processor.store_session_id(session, request['id']) - self.processor.process(request) + self.processor.process(session, request) def do_stop(self, session, request): self.shared.stop() -- 1.7.1