summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sleekxmpp/basexmpp.py11
-rw-r--r--sleekxmpp/componentxmpp.py4
2 files changed, 14 insertions, 1 deletions
diff --git a/sleekxmpp/basexmpp.py b/sleekxmpp/basexmpp.py
index 816f2fcc..7c131250 100644
--- a/sleekxmpp/basexmpp.py
+++ b/sleekxmpp/basexmpp.py
@@ -138,6 +138,17 @@ class BaseXMPP(XMLStream):
register_stanza_plugin(Message, Nick)
register_stanza_plugin(Message, HTMLIM)
+ def start_stream_handler(self, xml):
+ """
+ Save the stream ID once the streams have been established.
+
+ Overrides XMLStream.start_stream_handler.
+
+ Arguments:
+ xml -- The incoming stream's root element.
+ """
+ self.stream_id = xml.get('id', '')
+
def process(self, *args, **kwargs):
"""
Overrides XMLStream.process.
diff --git a/sleekxmpp/componentxmpp.py b/sleekxmpp/componentxmpp.py
index f9e7da4d..ed96016a 100644
--- a/sleekxmpp/componentxmpp.py
+++ b/sleekxmpp/componentxmpp.py
@@ -115,11 +115,13 @@ class ComponentXMPP(BaseXMPP):
Once the streams are established, attempt to handshake
with the server to be accepted as a component.
- Overrides XMLStream.start_stream_handler.
+ Overrides BaseXMPP.start_stream_handler.
Arguments:
xml -- The incoming stream's root element.
"""
+ BaseXMPP.start_stream_handler(self, xml)
+
# Construct a hash of the stream ID and the component secret.
sid = xml.get('id', '')
pre_hash = '%s%s' % (sid, self.secret)