summaryrefslogtreecommitdiff
path: root/slixmpp/features/feature_bind/bind.py
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2014-07-20 20:46:03 +0200
committerFlorent Le Coz <louiz@louiz.org>2014-07-20 20:46:03 +0200
commitc2f6f077762282d311a6f876f94cc1a4eb9e805f (patch)
tree935725c968da27ea1713617fa6fffcf2edbdc299 /slixmpp/features/feature_bind/bind.py
parent5ab77c745270d7d5c016c1dc7ef2a82533a4b16e (diff)
downloadslixmpp-c2f6f077762282d311a6f876f94cc1a4eb9e805f.tar.gz
slixmpp-c2f6f077762282d311a6f876f94cc1a4eb9e805f.tar.bz2
slixmpp-c2f6f077762282d311a6f876f94cc1a4eb9e805f.tar.xz
slixmpp-c2f6f077762282d311a6f876f94cc1a4eb9e805f.zip
Make xmlstream use an asyncio loop
Scheduled events, connection, TLS handshake (with STARTTLS), read and write on the socket are all done using only asyncio. A lot of threads, and thread-related (and thus useless) things still remain. This is only a first step.
Diffstat (limited to 'slixmpp/features/feature_bind/bind.py')
-rw-r--r--slixmpp/features/feature_bind/bind.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/slixmpp/features/feature_bind/bind.py b/slixmpp/features/feature_bind/bind.py
index ac69ee77..f636abf9 100644
--- a/slixmpp/features/feature_bind/bind.py
+++ b/slixmpp/features/feature_bind/bind.py
@@ -42,13 +42,16 @@ class FeatureBind(BasePlugin):
features -- The stream features stanza.
"""
log.debug("Requesting resource: %s", self.xmpp.requested_jid.resource)
+ self.features = features
iq = self.xmpp.Iq()
iq['type'] = 'set'
iq.enable('bind')
if self.xmpp.requested_jid.resource:
iq['bind']['resource'] = self.xmpp.requested_jid.resource
- response = iq.send(now=True)
+ iq.send(block=False, callback=self._on_bind_response)
+
+ def _on_bind_response(self, response):
self.xmpp.boundjid = JID(response['bind']['jid'], cache_lock=True)
self.xmpp.bound = True
self.xmpp.event('session_bind', self.xmpp.boundjid, direct=True)
@@ -58,7 +61,7 @@ class FeatureBind(BasePlugin):
log.info("JID set to: %s", self.xmpp.boundjid.full)
- if 'session' not in features['features']:
+ if 'session' not in self.features['features']:
log.debug("Established Session")
self.xmpp.sessionstarted = True
self.xmpp.session_started_event.set()