Пример #1
0
        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);
        }
Пример #2
0
        public void CreateConfigIni()
        {
            string ConfigPath = Path.Combine(Directory.GetCurrentDirectory(), "config.ini");

            string ApplicationName   = "CodeZero";
            int    InputPort         = 13010;
            char   ProtocolDelimiter = ';';
            string EncryptionKey     = "1234567890123456";
            string EncryptionIV      = "bbbbbbbbbbbbbbbb";
            int    PingTimer         = 20000;
            int    SessionLength     = 10;
            string DatabaseDriver    = "mssql";
            string DatabaseIP        = "62.138.6.50";
            int    DatabasePort      = 1433;
            string DatabaseLoginName = "sa";
            string DatabasePassword  = "******";
            string DatabaseDefault   = "Protega";
            string LogFile           = Path.Combine(Directory.GetCurrentDirectory(), "Log.txt");
            int    LogLevel          = 3;

            //CABAL DEFAULT!
            string LinuxIP        = "167.88.15.106";
            string LinuxLoginName = "root";
            string LinuxPassword  = "******";
            int    LinuxPort      = 22;

            System.Collections.Generic.List <int> Ports = new System.Collections.Generic.List <int>()
            {
                12001, 12002, 12003
            };
            string sPorts = "";

            Ports.ForEach(Port => sPorts += Port.ToString() + ";");
            sPorts = sPorts.TrimEnd(';');
            string IniText = String.Format("[{0}]", ApplicationName);


            if (File.Exists(ConfigPath))
            {
                File.Delete(ConfigPath);
            }
            FileStream fs = File.Create(ConfigPath);

            fs.Close();

            //File.WriteAllText(ConfigPath, "[Data]\r\nName=\r\nPassword=\r\nAccess=");
            File.WriteAllText(ConfigPath, IniText);
            Support.iniManager iniEngine = new Support.iniManager(ConfigPath);

            iniEngine.IniWriteValue(ApplicationName, "InputPort", InputPort.ToString());
            iniEngine.IniWriteValue(ApplicationName, "ProtocolDelimiter", ProtocolDelimiter.ToString());
            iniEngine.IniWriteValue(ApplicationName, "EncryptionKey", EncryptionKey.ToString());
            iniEngine.IniWriteValue(ApplicationName, "EncryptionIV", EncryptionIV.ToString());
            iniEngine.IniWriteValue(ApplicationName, "PingTimer", PingTimer.ToString());
            iniEngine.IniWriteValue(ApplicationName, "SessionLength", SessionLength.ToString());
            iniEngine.IniWriteValue(ApplicationName, "DatabaseDriver", DatabaseDriver.ToString());
            iniEngine.IniWriteValue(ApplicationName, "DatabaseIP", DatabaseIP.ToString());
            iniEngine.IniWriteValue(ApplicationName, "DatabasePort", DatabasePort.ToString());
            iniEngine.IniWriteValue(ApplicationName, "DatabaseLoginName", DatabaseLoginName.ToString());
            iniEngine.IniWriteValue(ApplicationName, "DatabasePassword", DatabasePassword.ToString());
            iniEngine.IniWriteValue(ApplicationName, "DatabaseDefault", DatabaseDefault.ToString());
            iniEngine.IniWriteValue(ApplicationName, "LogFile", LogFile.ToString());
            iniEngine.IniWriteValue(ApplicationName, "LogLevel", LogLevel.ToString());
            iniEngine.IniWriteValue(ApplicationName, "LinuxIP", LinuxIP.ToString());
            iniEngine.IniWriteValue(ApplicationName, "LinuxLoginName", LinuxLoginName.ToString());
            iniEngine.IniWriteValue(ApplicationName, "LinuxPassword", LinuxPassword.ToString());
            iniEngine.IniWriteValue(ApplicationName, "LinuxPort", LinuxPort.ToString());
            iniEngine.IniWriteValue(ApplicationName, "Ports", sPorts.ToString());
        }
Пример #3
0
        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);
        }