/// <summary>
        /// Got the stream:stream.  Start the handshake.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="tag"></param>
        protected override void OnDocumentStart(object sender, System.Xml.XmlElement tag)
        {
            base.OnDocumentStart(sender, tag);
            if (this.Type == ComponentType.Connect)
            {
                lock (StateLock)
                {
                    State = HandshakingState.Instance;
                }

                jabber.protocol.stream.Stream str = new jabber.protocol.stream.Stream(this.Document, NS);
                str.To        = this.ComponentID;
                this.StreamID = str.ID;
                if (ServerVersion.StartsWith("1."))
                {
                    str.Version = "1.0";
                }


                WriteStartTag(str);

                if (ServerVersion.StartsWith("1."))
                {
                    Features f = new Features(this.Document);
                    if (AutoStartTLS && !SSLon && (this[Options.LOCAL_CERTIFICATE] != null))
                    {
                        f.StartTLS = new StartTLS(this.Document);
                    }
                    Write(f);
                }
            }
        }
        private bool FakeReceivedStream()
        {
            jabber.protocol.stream.Stream stream =
                new jabber.protocol.stream.Stream(m_doc, NS);
            stream.Version = "1.0";
            stream.ID      = m_authID;

            byte[] sbuf = ENC.GetBytes(stream.StartTag());
            if (!m_listener.OnRead(this, sbuf, 0, sbuf.Length))
            {
                Close();
                return(false);
            }
            return(true);
        }
Example #3
0
 /// <summary>
 /// Writes a stream:stream start tag.
 /// </summary>
 /// <param name="stream">Stream containing the stream:stream packet to send.</param>
 public override void WriteStartTag(jabber.protocol.stream.Stream stream)
 {
     Write(stream.StartTag());
 }
Example #4
0
 /// <summary>
 /// Sends a new XMPP stream header.
 /// </summary>
 protected void SendNewStreamHeader()
 {
     jabber.protocol.stream.Stream str = new jabber.protocol.stream.Stream(m_doc, NS);
     str.To = new JID((string)this[Options.TO]);
     str.Version = "1.0";
     m_stanzas.WriteStartTag(str);
     InitializeStream();
 }
Example #5
0
 /// <summary>
 /// Writes a stream:stream start tag.
 /// Some underlying implementations will ignore this,
 /// but may pull out pertinent data.
 /// </summary>
 /// <param name="stream">Stream containing the start tag.</param>
 abstract public void WriteStartTag(jabber.protocol.stream.Stream stream);
Example #6
0
        /// <summary>
        /// Got the stream:stream.  Start the handshake.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="tag"></param>
        protected override void OnDocumentStart(object sender, System.Xml.XmlElement tag)
        {
            base.OnDocumentStart(sender, tag);
            if (this.Type == ComponentType.Connect)
            {
                lock (StateLock)
                {
                    State = HandshakingState.Instance;
                }

                jabber.protocol.stream.Stream str = new jabber.protocol.stream.Stream(this.Document, NS);
                str.To = this.ComponentID;
                this.StreamID = str.ID;
                if (ServerVersion.StartsWith("1."))
                    str.Version = "1.0";

                WriteStartTag(str);

                if (ServerVersion.StartsWith("1."))
                {
                    Features f = new Features(this.Document);
                    if (AutoStartTLS && !SSLon && (this[Options.LOCAL_CERTIFICATE] != null))
                        f.StartTLS = new StartTLS(this.Document);
                    Write(f);
                }
            }
        }