diff options
author | John Garland <johnnyg@gmail.com> | 2010-01-07 00:45:47 +0000 |
---|---|---|
committer | John Garland <johnnyg@gmail.com> | 2010-01-07 00:45:47 +0000 |
commit | 34b2ada0dbe1327ed52388789acff0c3a028849c (patch) | |
tree | d6b30c34159fad1e932e24ea000f56d678a296c1 | |
parent | 547cfa6339d67dc10d253a91d2660efcc45e9e5c (diff) | |
download | deluge-34b2ada0dbe1327ed52388789acff0c3a028849c.tar.gz deluge-34b2ada0dbe1327ed52388789acff0c3a028849c.tar.bz2 deluge-34b2ada0dbe1327ed52388789acff0c3a028849c.zip |
Rewrote call to use maybeDeferred (this handles methods that return deferreds).
Fixes #1114.
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | deluge/ui/client.py | 15 |
2 files changed, 5 insertions, 11 deletions
@@ -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): """ |