diff options
author | lovetox <philipp@hoerist.com> | 2020-03-26 00:28:34 +0300 |
---|---|---|
committer | lovetox <philipp@hoerist.com> | 2020-03-26 00:28:34 +0300 |
commit | 74cf3a1eceacf0935bd9a2686985127039700f62 (patch) | |
tree | 3977402d9ac955cda72d8b8c81e5c1642855f3ac /nbxmpp/dispatcher.py | |
parent | 42a4409ffa7598269145c1efa2c87f504fa38500 (diff) |
Dispatcher: Don't clear IQ callbacks on parser reset
Only clear IQ callbacks if we not resumed the stream
Diffstat (limited to 'nbxmpp/dispatcher.py')
-rw-r--r-- | nbxmpp/dispatcher.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/nbxmpp/dispatcher.py b/nbxmpp/dispatcher.py index 60fb373..8a9591e 100644 --- a/nbxmpp/dispatcher.py +++ b/nbxmpp/dispatcher.py @@ -186,14 +186,11 @@ class StanzaDispatcher(Observable): self.register_handler(*handler) def reset_parser(self): - self._remove_timeout_source() if self._parser is not None: self._parser.dispatch = None self._parser.destroy() self._parser = None - self._id_callbacks.clear() - self._parser = NodeBuilder(dispatch_depth=2, finished=False) self._parser.dispatch = self.dispatch @@ -493,11 +490,15 @@ class StanzaDispatcher(Observable): GLib.source_remove(self._timeout_id) self._timeout_id = None + def clear_iq_callbacks(self): + self._log.info('Clear IQ callbacks') + self._id_callbacks.clear() + def cleanup(self): self._client = None self._modules = {} self._parser = None - self._id_callbacks.clear() + self.clear_iq_callbacks() self._dispatch_callback = None self._handlers.clear() self._remove_timeout_source() |