diff options
author | mathieui <mathieui@mathieui.net> | 2021-01-24 11:30:51 +0100 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2021-01-24 11:30:51 +0100 |
commit | 0193667ace375ee03ed79f8faca33d2b6fd69318 (patch) | |
tree | 2e9fcae6c279651cdfb2d1111981367773dd68b1 /slixmpp/stanza | |
parent | 0bf1b9685958ff2eefdfc3e72658534077979c3b (diff) | |
parent | 9cb5131f1c96d3357398ef64f2989bb98a33acbe (diff) | |
download | slixmpp-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.py | 9 |
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) |