From e83fae3a6fed7dd143aa6fed0673ff46340ea953 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Sat, 6 Aug 2011 00:44:32 -0700 Subject: [PATCH] Save the stream ID when the stream starts. --- sleekxmpp/basexmpp.py | 11 +++++++++++ sleekxmpp/componentxmpp.py | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/sleekxmpp/basexmpp.py b/sleekxmpp/basexmpp.py index 816f2fc..7c13125 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 f9e7da4..ed96016 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)