From 34b2ada0dbe1327ed52388789acff0c3a028849c Mon Sep 17 00:00:00 2001 From: John Garland Date: Thu, 7 Jan 2010 00:45:47 +0000 Subject: [PATCH] Rewrote call to use maybeDeferred (this handles methods that return deferreds). Fixes #1114. --- ChangeLog | 1 + deluge/ui/client.py | 15 ++++----------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4f116b222..2cf45bd83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,7 @@ ==== GtkUI ==== * Fix #1104, #735 use path.utf-8 if available + * Fix #1114 test active port not working in classic mode ==== Console ==== * Fix #1115 not showing usage for the 'debug' command diff --git a/deluge/ui/client.py b/deluge/ui/client.py index 3cd73a4ad..7a3cde372 100644 --- a/deluge/ui/client.py +++ b/deluge/ui/client.py @@ -422,22 +422,15 @@ class DaemonClassicProxy(DaemonProxy): def call(self, method, *args, **kwargs): #log.debug("call: %s %s %s", method, args, kwargs) - d = defer.Deferred() + import copy + try: m = self.__daemon.rpcserver.get_object_method(method) except Exception, e: log.exception(e) - d.errback(e) - return d - - try: - import copy - result = m(*copy.deepcopy(args), **copy.deepcopy(kwargs)) - except Exception, e: - d.errback(e) + return defer.fail(e) else: - d.callback(result) - return d + return defer.maybeDeferred(m, *copy.deepcopy(args), **copy.deepcopy(kwargs)) def register_event_handler(self, event, handler): """