Beispiel #1
0
        private void Handle(BanIPMessage message)
        {
            var ipBan = Managers.AccountManager.Instance.FindIpBan(message.IPRange);
            var ip    = IPAddressRange.Parse(message.IPRange);

            if (ipBan != null)
            {
                ipBan.BanReason = message.BanReason;
                ipBan.BannedBy  = message.BannerAccountId;
                ipBan.Duration  = message.BanEndDate.HasValue ? (int?)(message.BanEndDate - DateTime.Now).Value.TotalMinutes : null;
                ipBan.Date      = DateTime.Now;

                Database.Update(ipBan);
            }
            else
            {
                var record = new IpBan
                {
                    IP        = ip,
                    BanReason = message.BanReason,
                    BannedBy  = message.BannerAccountId,
                    Duration  = message.BanEndDate.HasValue ? (int?)(message.BanEndDate - DateTime.Now).Value.TotalMinutes : null,
                    Date      = DateTime.Now
                };

                Database.Insert(record);
                Managers.AccountManager.Instance.AddIPBan(record);
            }

            Client.ReplyRequest(new CommonOKMessage(), message);
        }
Beispiel #2
0
 public void AddIPBan(IpBan ban)
 {
     lock (m_ipBans)
     {
         m_ipBans.Add(ban);
     }
 }
Beispiel #3
0
 public void RemoveIPBan(IpBan ban)
 {
     lock (m_ipBans)
     {
         m_ipBans.Remove(ban);
     }
 }
Beispiel #4
0
        private void Handle(BanIPMessage message)
        {
            IpBan          ipBan = AccountManager.FindIpBan(message.IPRange);
            IPAddressRange iP    = IPAddressRange.Parse(message.IPRange);

            if (ipBan != null)
            {
                ipBan.BanReason = message.BanReason;
                ipBan.BannedBy  = message.BannerAccountId;
                ipBan.Duration  = (message.BanEndDate.HasValue ? (message.BanEndDate - DateTime.Now) : null);
                ipBan.Date      = DateTime.Now;
                Database.Update(ipBan);
            }
            else
            {
                IpBan poco = new IpBan
                {
                    IP        = iP,
                    BanReason = message.BanReason,
                    BannedBy  = message.BannerAccountId,
                    Duration  = message.BanEndDate.HasValue ? (message.BanEndDate - DateTime.Now) : null,
                    Date      = DateTime.Now
                };
                Database.Insert(poco);
            }
            Client.ReplyRequest(new CommonOKMessage(), message);
        }
Beispiel #5
0
        private void Handle(UnBanIPMessage message)
        {
            IpBan ipBan = AccountManager.FindIpBan(message.IPRange);

            if (ipBan == null)
            {
                Client.SendError(string.Format("IP ban {0} not found", message.IPRange));
            }
            else
            {
                Database.Delete(ipBan);
                Client.ReplyRequest(new CommonOKMessage(), message);
            }
        }