From d4e1b68534203f5da1d1adbfb4b5cd2efa6694a8 Mon Sep 17 00:00:00 2001 From: mathieui Date: Sun, 18 Apr 2021 21:16:03 +0200 Subject: [PATCH] Allow handshake in stream.send() when not connected yet fix #3464 --- slixmpp/xmlstream/xmlstream.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/slixmpp/xmlstream/xmlstream.py b/slixmpp/xmlstream/xmlstream.py index 9fd21c58..4cb51b94 100644 --- a/slixmpp/xmlstream/xmlstream.py +++ b/slixmpp/xmlstream/xmlstream.py @@ -1140,9 +1140,12 @@ class XMLStream(asyncio.BaseProtocol): if not self._always_send_everything and not self._session_started: # Avoid circular imports from slixmpp.stanza.rootstanza import RootStanza - from slixmpp.stanza import Iq - is_bind = isinstance(data, Iq) and data.get_plugin('bind', check=True) - if isinstance(data, (RootStanza, str)) and not is_bind: + from slixmpp.stanza import Iq, Handshake + passthrough = ( + (isinstance(data, Iq) and data.get_plugin('bind', check=True)) + or isinstance(data, Handshake) + ) + if isinstance(data, (RootStanza, str)) and not passthrough: self.__queued_stanzas.append(data) log.debug('NOT SENT: %s %s', type(data), data) return