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); }
public void AddIPBan(IpBan ban) { lock (m_ipBans) { m_ipBans.Add(ban); } }
public void RemoveIPBan(IpBan ban) { lock (m_ipBans) { m_ipBans.Remove(ban); } }
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); }
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); } }