namespace Holo.Source.GameConnectionSystem { using Holo.Managers; using System; using System.Collections; using System.Threading; internal class connectionHelper { private static int BannedIPcount; private static Hashtable BannedIPs = new Hashtable(); private static Thread Checker = new Thread(new ThreadStart(connectionHelper.CheckSockets)); private static Hashtable Connections = new Hashtable(); internal static void AddConnection(gameConnection Endpoint, int ConnectionID) { if (Connections.ContainsValue(ConnectionID)) { Connections.Remove(ConnectionID); } Connections.Add(ConnectionID, Endpoint); } private static void CheckSockets() { while (true) { Hashtable TMP = Connections; foreach (gameConnection EndPoint in TMP.Values) { if (!EndPoint.IsActive) { EndPoint.Close(); } } Thread.Sleep(0x2710); } } internal static void Init() { Checker.Start(); } public static bool IpIsBanned(string IP) { if (BannedIPs.ContainsKey(IP)) { return true; } if (userManager.getBanReason(IP) != "") { BannedIPs.Add(IP, BannedIPcount); BannedIPcount++; return true; } return false; } internal static void RemoveConnection(int ID) { if (Connections.ContainsValue(ID)) { Connections.Remove(ID); } } } }