/// <summary> /// Verifies the specified session-id. /// </summary> /// <param name="stanza">The original IQ stanza.</param> /// <param name="sid">The session-id to verify.</param> /// <returns>true if the specified session-id is valid; Otherwise /// false.</returns> bool VerifySession(Iq stanza, string sid) { if (String.IsNullOrEmpty(sid)) { return(false); } var session = siFileTransfer.GetSession(sid, stanza.From, im.Jid); return(session != null); }
/// <summary> /// Processes an IBB 'open' request. /// </summary> /// <param name="sessionId">The mandatory session id attribute of the 'open' /// element.</param> /// <param name="stanza">The IQ stanza containing the request.</param> /// <exception cref="ArgumentNullException">The sessionId parameter or the /// stanza parameter is null.</exception> /// <exception cref="ArgumentException">The specified session id is not /// valid, or the initiator requested a data-transfer other than IQ /// stanzas (i.e. message stanzas).</exception> void Open(string sessionId, Iq stanza) { sessionId.ThrowIfNull("sessionId"); stanza.ThrowIfNull("stanza"); if (siFileTransfer.GetSession(sessionId, stanza.From, im.Jid) == null) { throw new XmppException("Invalid session-id."); } string s = stanza.Data["open"].GetAttribute("stanza"); if (!String.IsNullOrEmpty(s) && s != "iq") { throw new XmppException("Only IQ stanzas are supported."); } }