static bool StartServer() { List <string> Sections = GetSections(Path.Combine(Environment.CurrentDirectory, "config.ini")); Support.iniManager iniEngine = new Support.iniManager(Path.Combine(Environment.CurrentDirectory, "config.ini")); foreach (string item in Sections) { string ApplicationName = item; bool isActive = iniEngine.IniReadValue(item, "isActive") == "1"; if (!isActive) { continue; } int Version; if (!Int32.TryParse(iniEngine.IniReadValue(item, "Version"), out Version)) { continue; } short InputPort; if (!Int16.TryParse(iniEngine.IniReadValue(item, "InputPort"), out InputPort)) { continue; } char ProtocolDelimiter; if (!char.TryParse(iniEngine.IniReadValue(item, "ProtocolDelimiter"), out ProtocolDelimiter)) { continue; } string EncryptionKey = iniEngine.IniReadValue(item, "EncryptionKey"); string EncryptionIV = iniEngine.IniReadValue(item, "EncryptionIV"); int PingTimer; if (!int.TryParse(iniEngine.IniReadValue(item, "PingTimer"), out PingTimer)) { continue; } int SessionLength; if (!int.TryParse(iniEngine.IniReadValue(item, "SessionLength"), out SessionLength)) { continue; } string DatabaseDriver = iniEngine.IniReadValue(item, "DatabaseDriver"); string DatabaseIP = iniEngine.IniReadValue(item, "DatabaseIP"); short DatabasePort; if (!short.TryParse(iniEngine.IniReadValue(item, "DatabasePort"), out DatabasePort)) { continue; } string DatabaseLoginName = iniEngine.IniReadValue(item, "DatabaseLoginName"); string DatabasePassword = iniEngine.IniReadValue(item, "DatabasePassword"); string DatabaseDefault = iniEngine.IniReadValue(item, "DatabaseDefault"); string LogFile = iniEngine.IniReadValue(item, "LogFile"); int LogLevel; if (!int.TryParse(iniEngine.IniReadValue(item, "LogLevel"), out LogLevel)) { continue; } string PathGameDll = iniEngine.IniReadValue(item, "PathGameDll"); ControllerCore Controller = new ControllerCore(ApplicationName, Version, InputPort, ProtocolDelimiter, EncryptionKey, EncryptionIV, PingTimer, SessionLength, DatabaseDriver, DatabaseIP, DatabasePort, DatabaseLoginName, DatabasePassword, DatabaseDefault, LogFile, LogLevel, PathGameDll); try { Controller.Start(); AppsRunning.Add(Controller); } catch (Exception e) { return(false); } } return(true); }
static bool RefreshSettings() { List <string> Sections = GetSections(Path.Combine(Environment.CurrentDirectory, "config.ini")); Support.iniManager iniEngine = new Support.iniManager(Path.Combine(Environment.CurrentDirectory, "config.ini")); foreach (string item in Sections) { int NewVersion; if (!Int32.TryParse(iniEngine.IniReadValue(item, "Version"), out NewVersion)) { return(false); } string EncryptionKey = iniEngine.IniReadValue(item, "EncryptionKey"); string EncryptionIV = iniEngine.IniReadValue(item, "EncryptionIV"); int PingTimer; if (!int.TryParse(iniEngine.IniReadValue(item, "PingTimer"), out PingTimer)) { return(false); } int LogLevel; if (!int.TryParse(iniEngine.IniReadValue(item, "LogLevel"), out LogLevel)) { return(false); } if (AppsRunning.Count > 0) { int FormerVersion = Classes.CCstData.GetInstance(AppsRunning[0].Application).LatestClientVersion; if (NewVersion != FormerVersion) { Classes.CCstData.GetInstance(AppsRunning[0].Application).LatestClientVersion = NewVersion; Console.WriteLine("CONFIG update: Using now version " + NewVersion.ToString()); } int FormerLogLevel = Classes.CCstData.GetInstance(AppsRunning[0].Application).Logger.LogLevel; if (LogLevel != FormerLogLevel) { Classes.CCstData.GetInstance(AppsRunning[0].Application).Logger.LogLevel = LogLevel; Console.WriteLine("CONFIG update: Using now LogLevel " + LogLevel.ToString()); } string FormerEncryptionKey = Classes.CCstData.GetInstance(AppsRunning[0].Application).EncryptionKey; if (FormerEncryptionKey != EncryptionKey) { Classes.CCstData.GetInstance(AppsRunning[0].Application).EncryptionKey = EncryptionKey; Console.WriteLine("CONFIG update: Using now encryption key " + EncryptionKey); } string FormerEncryptionIV = Classes.CCstData.GetInstance(AppsRunning[0].Application).EncryptionIV; if (FormerEncryptionIV != EncryptionIV) { Classes.CCstData.GetInstance(AppsRunning[0].Application).EncryptionIV = EncryptionIV; Console.WriteLine("CONFIG update: Using now encryption IV " + EncryptionIV); } int FormerPingTimer = Classes.CCstData.GetInstance(AppsRunning[0].Application).PingTimer; if (FormerEncryptionIV != EncryptionIV) { Classes.CCstData.GetInstance(AppsRunning[0].Application).PingTimer = PingTimer; Console.WriteLine("CONFIG update: Using now PingTimer " + PingTimer.ToString() + "ms"); } } } return(true); }