using System; using System.Collections.Generic; using System.Linq; using System.Text; using Holo.Managers; using System.Collections; using Ion.Storage; using System.Threading; namespace Holo.Source.GameConnectionSystem { class connectionHelper { private static int BannedIPcount; private static Hashtable BannedIPs = new Hashtable(); private static Hashtable Connections = new Hashtable(); //private static Thread Checker = new Thread(new ThreadStart(CheckSockets)); internal static void Init() { //Checker.Start(); } public static bool IpIsBanned(string IP) { if (BannedIPs.ContainsKey(IP) == true) return true; else { string banReason = userManager.getBanReason(IP); if (banReason != "") { BannedIPs.Add(IP, BannedIPcount); BannedIPcount++; return true; } else { return false; } } } //internal static void BanIP(string IP) //{ // if (IpIsBanned(IP) == false) // { // using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) // { // if (!dbClient.findsResult("SELECT date_expire FROM users_bans WHERE ipaddress = '" + IP + "'")) // { // dbClient.runQuery("INSERT INTO users_bans (ipaddress,date_expire,descr) VALUES ('" + IP + "','18-10-2020 15:43:22','Automaticly banned by system')"); // BannedIPs.Add(IP, BannedIPcount); // BannedIPcount++; // } // } // } //} //private static void CheckSockets() //{ // while (true) // { // Hashtable TMP = Connections; // foreach (gameConnection EndPoint in TMP.Values) // { // //Out.WriteLine("Checking connectionID [" + EndPoint.ConnectionID + "]"); // if (!EndPoint.IsActive) // EndPoint.Close(); // } // Thread.Sleep(10000); // 10 secconds // } //} internal static void AddConnection(gameConnection Endpoint, int ConnectionID) { if (Connections.ContainsValue(ConnectionID)) Connections.Remove(ConnectionID); Connections.Add(ConnectionID, Endpoint); } internal static void RemoveConnection(int ID) { if (Connections.ContainsValue(ID)) Connections.Remove(ID); } } }