summaryrefslogtreecommitdiff
path: root/slixmpp/stanza
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2021-01-24 11:30:51 +0100
committermathieui <mathieui@mathieui.net>2021-01-24 11:30:51 +0100
commit0193667ace375ee03ed79f8faca33d2b6fd69318 (patch)
tree2e9fcae6c279651cdfb2d1111981367773dd68b1 /slixmpp/stanza
parent0bf1b9685958ff2eefdfc3e72658534077979c3b (diff)
parent9cb5131f1c96d3357398ef64f2989bb98a33acbe (diff)
downloadslixmpp-0193667ace375ee03ed79f8faca33d2b6fd69318.tar.gz
slixmpp-0193667ace375ee03ed79f8faca33d2b6fd69318.tar.bz2
slixmpp-0193667ace375ee03ed79f8faca33d2b6fd69318.tar.xz
slixmpp-0193667ace375ee03ed79f8faca33d2b6fd69318.zip
Merge branch 'ping-cancel-iqs-on-session-end' into 'master'
Cancel 0199 pings on session end See merge request poezio/slixmpp!102
Diffstat (limited to 'slixmpp/stanza')
-rw-r--r--slixmpp/stanza/iq.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/slixmpp/stanza/iq.py b/slixmpp/stanza/iq.py
index a3f16e2f..0f53425b 100644
--- a/slixmpp/stanza/iq.py
+++ b/slixmpp/stanza/iq.py
@@ -194,9 +194,11 @@ class Iq(RootStanza):
def callback_success(result):
type_ = result['type']
if type_ == 'result':
- future.set_result(result)
+ if not future.done():
+ future.set_result(result)
elif type_ == 'error':
- future.set_exception(IqError(result))
+ if not future.done():
+ future.set_exception(IqError(result))
else:
# Most likely an iq addressed to ourself, rearm the callback.
handler = constr(handler_name,
@@ -212,7 +214,8 @@ class Iq(RootStanza):
callback(result)
def callback_timeout():
- future.set_exception(IqTimeout(self))
+ if not future.done():
+ future.set_exception(IqTimeout(self))
self.stream.remove_handler('IqCallback_%s' % self['id'])
if timeout_callback is not None:
timeout_callback(self)