コード例 #1
0
ファイル: Validator.cs プロジェクト: GuardMoony/CWSRestart
        /// <summary>
        /// Determines if the server is accessible through the selected networks
        /// </summary>
        /// <param name="access">The access scheme</param>
        /// <returns>True if the server was accessible through all the specified access networks</returns>
        public async Task<bool> IsAccessible(Settings.AccessType access)
        {
            bool accessFailed = false;

            if (access.HasFlag(Settings.AccessType.Internet))
            {
                Logging.OnLogMessage("Checking access from the internet", Logging.MessageType.Info);

                if (await ServerIsListening(Settings.Instance.Internet, Settings.Instance.Port))
                    Logging.OnLogMessage("Access is possible through the internet", Logging.MessageType.Info);
                else
                    accessFailed = true;
            }

            if (access.HasFlag(Settings.AccessType.LAN))
            {
                Logging.OnLogMessage("Checking access from the local network", Logging.MessageType.Info);

                if (await ServerIsListening(Settings.Instance.LAN, Settings.Instance.Port))
                    Logging.OnLogMessage("Access is possible through the local network", Logging.MessageType.Info);
                else
                    accessFailed = true;
            }

            if (access.HasFlag(Settings.AccessType.Loopback))
            {
                Logging.OnLogMessage("Checking access via loopback", Logging.MessageType.Info);

                if (await ServerIsListening(Settings.Instance.Loopback, Settings.Instance.Port))
                    Logging.OnLogMessage("Access is possible through loopback", Logging.MessageType.Info);
                else
                    accessFailed = true;
            }

            return !accessFailed;
        }
コード例 #2
0
ファイル: Validator.cs プロジェクト: GuardMoony/CWSRestart
        /// <summary>
        /// Checks if the server is still running
        /// </summary>
        /// <param name="access">The desired access scheme</param>
        /// <returns>true if everything is fine</returns>
        public async Task<ServerErrors> Validates(Settings.AccessType access)
        {
            ServerErrors serverHealth = 0;

            if (IsRunning())
            {
                Logging.OnLogMessage("The process is running", Logging.MessageType.Info);
            }
            else
            {
                Logging.OnLogMessage("The process is dead", Logging.MessageType.Warning);
                serverHealth |= ServerErrors.ProcessDead;
            }

            if (await IsAccessible(access))
            {
                Logging.OnLogMessage("The server is responding fine", Logging.MessageType.Info);
            }
            else
            {
                Logging.OnLogMessage("The server is not responding as it should", Logging.MessageType.Warning);
                serverHealth |= ServerErrors.Connection;
            }

            return serverHealth;
        }