/// <summary> /// Bloque un identifiant Jabber /// </summary> /// <param name="jbid">Identifiant Jabber</param> public void block(string jbid) { if (Jabber.xmpp.Authenticated) { agsXMPP.Jid jid = new agsXMPP.Jid(jbid); if (jid != null && jid.ToString() != Jabber.xmpp.MyJID.ToString()) { agsXMPP.protocol.iq.privacy.PrivacyIq piq = new agsXMPP.protocol.iq.privacy.PrivacyIq(); piq.From = Jabber.xmpp.MyJID; piq.Type = agsXMPP.protocol.client.IqType.set; agsXMPP.protocol.iq.privacy.List list = new agsXMPP.protocol.iq.privacy.List(Jabber.xmpp.MyJID.Bare.Replace("@", "_").Replace("/", "_").Replace(".", "_")); agsXMPP.protocol.iq.privacy.Item item = new agsXMPP.protocol.iq.privacy.Item(); item.Action = agsXMPP.protocol.iq.privacy.Action.deny; item.BlockIncomingPresence = false; item.BlockIq = true; item.BlockMessage = true; item.BlockOutgoingPresence = true; item.Order = 1; item.Stanza = agsXMPP.protocol.iq.privacy.Stanza.Iq | agsXMPP.protocol.iq.privacy.Stanza.Message | agsXMPP.protocol.iq.privacy.Stanza.OutgoingPresence; item.Type = agsXMPP.protocol.iq.privacy.Type.jid; item.Val = jid.ToString(); list.AddItem(item); piq.Query.AddList(list); PrivacyStructure ps = new PrivacyStructure(); ps.id = piq.Id; ps.jid = jid; Jabber.xmpp.IqGrabber.SendIq(piq, new agsXMPP.IqCB(blockResult), ps); } } }
private void getListResult(object sender, agsXMPP.protocol.client.IQ iq, object data) { if (iq.Type == agsXMPP.protocol.client.IqType.result && iq.Error == null) { if (iq.Query != null && iq.Query is agsXMPP.protocol.iq.privacy.Privacy) { agsXMPP.protocol.iq.privacy.Privacy privacy = iq.Query as agsXMPP.protocol.iq.privacy.Privacy; if (Jabber.xmpp.IqGrabber != null) { Jabber.xmpp.IqGrabber.Remove(data as string); } agsXMPP.protocol.iq.privacy.List customList = null; agsXMPP.protocol.iq.privacy.List[] lists = privacy.GetList(); if (lists != null) { foreach (agsXMPP.protocol.iq.privacy.List list in lists) { if (list.Name == Jabber.xmpp.MyJID.Bare.Replace("@", "_").Replace("/", "_").Replace(".", "_")) { customList = list; break; } } } if (customList != null) { agsXMPP.protocol.iq.privacy.Item[] items = customList.GetItems(); if (items != null) { bool updated = false; foreach (agsXMPP.protocol.iq.privacy.Item item in items) { if (item.Type == agsXMPP.protocol.iq.privacy.Type.jid) { agsXMPP.Jid jid = new agsXMPP.Jid(item.Val); if (jid != null) { if (item.Action == agsXMPP.protocol.iq.privacy.Action.deny && !_blockedJid.Contains(jid.ToString())) { _blockedJid.Add(jid.ToString()); updated = true; } else if (item.Action == agsXMPP.protocol.iq.privacy.Action.allow && _blockedJid.Contains(jid.ToString())) { _blockedJid.Remove(jid.ToString()); updated = true; } } } } if (updated) { OnPrivacyListUpdated(); } } } } } }
public IXmppConnection GetConnection(Jid jid) { IXmppConnection[] temp; lock (this._connections) { temp = this._connections.ToArray(); } return(temp.Where(x => x.Session.Jid.ToString() == jid.ToString()).FirstOrDefault()); }
/// <summary> /// Constructeur /// </summary> /// <param name="jid">Identifiant Jabber</param> public Identity(agsXMPP.Jid jid) { if (jid == null) { return; } _jabberID = new JabberID(); _jabberID.user = (jid.User != null) ? jid.User : string.Empty; _jabberID.domain = (jid.Server != null) ? jid.Server : string.Empty; _jabberID.resource = (jid.Resource != null) ? jid.Resource : string.Empty; _jabberID.bare = (jid.Bare != null) ? jid.Bare : string.Empty; _jabberID.full = jid.ToString(); _name = new Name(); _name.firstname = string.Empty; _name.lastname = string.Empty; _name.middle = string.Empty; _organization = new Organization(); _organization.name = string.Empty; _organization.unit = string.Empty; load(); Jabber.xmpp.OnIq += new agsXMPP.protocol.client.IqHandler(iqManager); }