summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sleekxmpp/basexmpp.py5
-rw-r--r--sleekxmpp/componentxmpp.py2
-rw-r--r--sleekxmpp/features/feature_bind/bind.py3
3 files changed, 9 insertions, 1 deletions
diff --git a/sleekxmpp/basexmpp.py b/sleekxmpp/basexmpp.py
index 275275d1..da5b3e41 100644
--- a/sleekxmpp/basexmpp.py
+++ b/sleekxmpp/basexmpp.py
@@ -16,6 +16,7 @@ from __future__ import with_statement, unicode_literals
import sys
import logging
+import threading
import sleekxmpp
from sleekxmpp import plugins, features, roster
@@ -69,8 +70,11 @@ class BaseXMPP(XMLStream):
#: The JabberID (JID) used by this connection.
self.boundjid = JID(jid)
+
self._expected_server_name = self.boundjid.host
+ self.session_bind_event = threading.Event()
+
#: A dictionary mapping plugin names to plugins.
self.plugin = PluginManager(self)
@@ -655,6 +659,7 @@ class BaseXMPP(XMLStream):
def _handle_disconnected(self, event):
"""When disconnected, reset the roster"""
self.roster.reset()
+ self.session_bind_event.clear()
def _handle_stream_error(self, error):
self.event('stream_error', error)
diff --git a/sleekxmpp/componentxmpp.py b/sleekxmpp/componentxmpp.py
index d69d8266..20748b69 100644
--- a/sleekxmpp/componentxmpp.py
+++ b/sleekxmpp/componentxmpp.py
@@ -156,7 +156,9 @@ class ComponentXMPP(BaseXMPP):
:param xml: The reply handshake stanza.
"""
+ self.session_bind_event.set()
self.session_started_event.set()
+ self.event("session_bind", self.xmpp.boundjid.full, direct=True)
self.event("session_start")
def _handle_probe(self, presence):
diff --git a/sleekxmpp/features/feature_bind/bind.py b/sleekxmpp/features/feature_bind/bind.py
index b828e26f..2253d5ae 100644
--- a/sleekxmpp/features/feature_bind/bind.py
+++ b/sleekxmpp/features/feature_bind/bind.py
@@ -50,7 +50,8 @@ class FeatureBind(BasePlugin):
self.xmpp.set_jid(response['bind']['jid'])
self.xmpp.bound = True
- self.xmpp.event('session_bind', self.xmpp.boundjid, direct=True)
+ self.xmpp.event('session_bind', self.xmpp.boundjid.full, direct=True)
+ self.xmpp.session_bind_event.set()
self.xmpp.features.add('bind')