From 6aa3171194992e77be00b68287f1fedeb43c8fce Mon Sep 17 00:00:00 2001 From: genjix Date: Sun, 15 Apr 2012 21:56:57 +0100 Subject: [PATCH] "methods" and "params" shouldnt be in response json. isolate problem section. --- processor.py | 27 ++++++++++++++------------- 1 files changed, 14 insertions(+), 13 deletions(-) diff --git a/processor.py b/processor.py index 84af962..be61c73 100644 --- a/processor.py +++ b/processor.py @@ -196,21 +196,22 @@ class ResponseDispatcher(threading.Thread): response = self.processor.pop_response() #print "pop response", response internal_id = response.get('id') - params = response.get('params',[]) - try: - method = response['method'] - except: - print "no method", response - continue - - if internal_id: - session, message_id = self.processor.get_session_id(internal_id) - response['id'] = message_id - session.send_response(response) - - else: + params = response.get('params', []) + + # This is wrong. "params" and "method" should never + # be in a response. + if internal_id is None: + method = response.get('method') + if method is None: + print "no method", response + continue for session in self.processor.sessions: if not session.stopped(): if (method,params) in session.subscriptions: session.send_response(response) + continue + + session, message_id = self.processor.get_session_id(internal_id) + response['id'] = message_id + session.send_response(response) -- 1.7.1