Ejemplo n.º 1
0
 /// <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);
         }
     }
 }
Ejemplo n.º 2
0
 /// <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);
         }
     }
 }
Ejemplo n.º 3
0
 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();
                     }
                 }
             }
         }
     }
 }