From a347cf625ade5b3cdea0a37ababebe754f580276 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Tue, 10 Jul 2012 01:35:57 -0700 Subject: [PATCH] Add session_bind_event threading event. --- sleekxmpp/basexmpp.py | 5 +++++ sleekxmpp/componentxmpp.py | 2 ++ sleekxmpp/features/feature_bind/bind.py | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) 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')