Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/p2p
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2006-05-23 16:42:26 (GMT)
committer Dan Williams <dcbw@redhat.com>2006-05-23 16:42:26 (GMT)
commita7a0c2cda57eb070c2b87adb5c80458c62ea7e7d (patch)
tree9c301ddc321211d5875ab078beca088cb64d3035 /sugar/p2p
parent89f9730641addca90db025f4d1811b76b5c1f227 (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.py26
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