"methods" and "params" shouldnt be in response json.
authorgenjix <fake@lol.u>
Sun, 15 Apr 2012 20:56:57 +0000 (21:56 +0100)
committergenjix <fake@lol.u>
Sun, 15 Apr 2012 20:56:57 +0000 (21:56 +0100)
isolate problem section.

processor.py

index 84af962..be61c73 100644 (file)
@@ -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)