diff options
author | Dan Williams <dcbw@redhat.com> | 2006-05-23 16:42:26 (GMT) |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2006-05-23 16:42:26 (GMT) |
commit | a7a0c2cda57eb070c2b87adb5c80458c62ea7e7d (patch) | |
tree | 9c301ddc321211d5875ab078beca088cb64d3035 /sugar/p2p | |
parent | 89f9730641addca90db025f4d1811b76b5c1f227 (diff) |
Fix some spacing issues; catch exceptions in XMLRPC client code and return result status (success or failure) to XMLRPC client callback
Diffstat (limited to 'sugar/p2p')
-rw-r--r-- | sugar/p2p/network.py | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/sugar/p2p/network.py b/sugar/p2p/network.py index 684d114..b6241a9 100644 --- a/sugar/p2p/network.py +++ b/sugar/p2p/network.py @@ -10,6 +10,9 @@ import SimpleXMLRPCServer import SocketServer +RESULT_FAILED = 0 +RESULT_SUCCESS = 1 + __authinfos = {} def _add_authinfo(authinfo): @@ -176,7 +179,7 @@ class GlibXMLRPCTransport(xmlrpclib.Transport): if request_cb: if len(response) == 1: response = response[0] - gobject.idle_add(request_cb, response, user_data) + gobject.idle_add(request_cb, RESULT_SUCCESS, response, user_data) class _Method: """Right, so python people thought it would be funny to make this @@ -209,7 +212,7 @@ class GlibServerProxy(xmlrpclib.ServerProxy): Here, 'xmlrpc_test_cb' is the callback function, which has the following signature: - def xmlrpc_test_cb(response, user_data=None): + def xmlrpc_test_cb(result_status, response, user_data=None): ... """ def __init__(self, uri, encoding=None, verbose=0, allow_none=0): @@ -236,14 +239,17 @@ class GlibServerProxy(xmlrpclib.ServerProxy): request = xmlrpclib.dumps(params, methodname, encoding=self._encoding, allow_none=self._allow_none) - response = self._transport.start_request( - self._host, - self._handler, - request, - verbose=self._verbose, - request_cb=request_cb, - user_data=user_data - ) + try: + response = self._transport.start_request( + self._host, + self._handler, + request, + verbose=self._verbose, + request_cb=request_cb, + user_data=user_data + ) + except socket.error, exc: + gobject.idle_add(request_cb, RESULT_FAILED, None, user_data) def __getattr__(self, name): # magic method dispatcher |