Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/chat
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2006-05-05 18:27:46 (GMT)
committer Dan Williams <dcbw@redhat.com>2006-05-05 18:27:46 (GMT)
commit615eb60550f245e9e55c58f8daa7706e81f56461 (patch)
tree3a7d626b21a6cf21769dc657f6ebb9896cd85ee2 /chat
parent3acdb18d26ee9fd2191a045de96e103502be4a1d (diff)
Print more debug info
Diffstat (limited to 'chat')
-rwxr-xr-xchat/chat.py2
-rw-r--r--chat/network.py35
-rw-r--r--chat/p2p.py8
3 files changed, 41 insertions, 4 deletions
diff --git a/chat/chat.py b/chat/chat.py
index f4716ed..a5f3fc8 100755
--- a/chat/chat.py
+++ b/chat/chat.py
@@ -344,7 +344,7 @@ class GroupChat(Chat):
chat = BuddyChat(self, sender)
sender.set_chat(chat)
chat.activity_connect_to_shell()
- chat.recv_message(sender, msg)
+ chat.recv_message(message)
def run(self):
try:
diff --git a/chat/network.py b/chat/network.py
index dc80a94..bc1aa8c 100644
--- a/chat/network.py
+++ b/chat/network.py
@@ -75,6 +75,41 @@ class GlibXMLRPCServer(GlibTCPServer, SimpleXMLRPCServer.SimpleXMLRPCDispatcher)
SimpleXMLRPCServer.SimpleXMLRPCDispatcher.__init__(self)
GlibTCPServer.__init__(self, addr, requestHandler)
+ def _marshaled_dispatch(self, data, dispatch_method = None):
+ """Dispatches an XML-RPC method from marshalled (XML) data.
+
+ XML-RPC methods are dispatched from the marshalled (XML) data
+ using the _dispatch method and the result is returned as
+ marshalled data. For backwards compatibility, a dispatch
+ function can be provided as an argument (see comment in
+ SimpleXMLRPCRequestHandler.do_POST) but overriding the
+ existing method through subclassing is the prefered means
+ of changing method dispatch behavior.
+ """
+
+ params, method = xmlrpclib.loads(data)
+
+ # generate response
+ try:
+ if dispatch_method is not None:
+ response = dispatch_method(method, params)
+ else:
+ response = self._dispatch(method, params)
+ # wrap response in a singleton tuple
+ response = (response,)
+ response = xmlrpclib.dumps(response, methodresponse=1)
+ except Fault, fault:
+ response = xmlrpclib.dumps(fault)
+ except:
+ print "Exception while processing request:"
+ traceback.print_exc()
+ # report exception back to server
+ response = xmlrpclib.dumps(
+ xmlrpclib.Fault(1, "%s:%s" % (sys.exc_type, sys.exc_value))
+ )
+
+ return response
+
class GroupChatController(object):
diff --git a/chat/p2p.py b/chat/p2p.py
index 381180b..2a91bee 100644
--- a/chat/p2p.py
+++ b/chat/p2p.py
@@ -2,6 +2,7 @@ import os
import pwd
import xmlrpclib
import socket
+import traceback
import presence
import BuddyList
@@ -14,7 +15,6 @@ class GroupRequestHandler(object):
def message(self, message):
address = network.get_authinfo()
self._group.recv(address[0], message)
- return True
class Owner:
instance = None
@@ -93,9 +93,11 @@ class Group:
peer = xmlrpclib.ServerProxy(addr)
success = True
try:
+ print self._serialize_msg(pipe_id, msg)
peer.message(self._serialize_msg(pipe_id, msg))
- except (socket.error, xmlrpclib.Fault), e:
- print str(e)
+ except (socket.error, xmlrpclib.Fault, xmlrpclib.ProtocolError), e:
+ print "Message Send Error:"
+ traceback.print_exc()
success = False
return success