コード例 #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);
         }
     }
 }
コード例 #2
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();
                     }
                 }
             }
         }
     }
 }
コード例 #3
0
ファイル: Privacy.cs プロジェクト: spzenk/sfdocsamples
 /// <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);
         }
     }
 }
コード例 #4
0
        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());
        }
コード例 #5
0
 /// <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);
 }
コード例 #6
0
ファイル: Privacy.cs プロジェクト: spzenk/sfdocsamples
 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();
                     }
                 }
             }
         }
     }
 }