summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Garland <johnnyg@gmail.com>2010-01-07 00:45:47 +0000
committerJohn Garland <johnnyg@gmail.com>2010-01-07 00:45:47 +0000
commit34b2ada0dbe1327ed52388789acff0c3a028849c (patch)
treed6b30c34159fad1e932e24ea000f56d678a296c1
parent547cfa6339d67dc10d253a91d2660efcc45e9e5c (diff)
downloaddeluge-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--ChangeLog1
-rw-r--r--deluge/ui/client.py15
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):
"""