mirror of
https://github.com/codex-storage/deluge.git
synced 2025-02-17 05:47:50 +00:00
Rewrote call to use maybeDeferred (this handles methods that return deferreds).
Fixes #1114.
This commit is contained in:
parent
9b97c6a578
commit
4dbc93b1fa
@ -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):
|
||||
"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user