Example #1
0
    static int SslTestSuite(ConsoleService c, string cmdName, string str)
    {
        ConsoleParam[] args =
        {
            new ConsoleParam("[host:port]",      ConsoleService.Prompt, "<Host:port>: ", ConsoleService.EvalNotEmpty, null),
            new ConsoleParam("parallel"),
            new ConsoleParam("interval"),
            new ConsoleParam("ignore"),
            new ConsoleParam("expectedcertstr"),
        };

        ConsoleParamValueList vl = c.ParseCommandList(cmdName, str, args);

        string hostAndPort     = vl.DefaultParam.StrValue;
        int    parallel        = vl["parallel"].IntValue;
        int    interval        = vl["interval"].IntValue;
        string ignList         = vl["ignore"].StrValue;
        string expectedcertstr = vl["expectedcertstr"].StrValue;

        EnvInfoSnapshot envInfo = new EnvInfoSnapshot();

        envInfo._PrintAsJson();


        if (Env.IsMac)
        {
            Con.WriteLine();
            Con.WriteLine("Mac OS is not suppoerted. Skip.");
            return(0);
        }

        bool ret = false;

        Async(async() =>
        {
            ret = await LtsOpenSslTool.TestSuiteAsync(hostAndPort, parallel, interval, ignList, default, expectedcertstr);
Example #2
0
    public override async Task FlushAsync(bool halfFlush = false, CancellationToken cancel = default)
    {
        List <string> linesToSend;
        List <string> lines2ToSend;

        try
        {
            if (MyLocalIp == null)
            {
                MyLocalIp = await GetMyPrivateIpNativeUtil.GetMyPrivateIpAsync(IPVersion.IPv4);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }

        if (MyIpInfo == null)
        {
            try
            {
                await using GetMyIpClient c = new GetMyIpClient();

                MyIpInfo = await c.GetMyIpInfoAsync(IPVersion.IPv4, cancel);
            }
            catch
            {
            }
        }

        string globalInfo = "(Unknown)";

        if (MyIpInfo != null)
        {
            if (MyIpInfo.GlobalFqdn._IsSamei(MyIpInfo.GlobalIpAddress.ToString()))
            {
                globalInfo = MyIpInfo.GlobalFqdn;
            }
            else
            {
                globalInfo = $"{MyIpInfo.GlobalFqdn} - {MyIpInfo.GlobalIpAddress}";
            }
        }

        lock (this.Lock)
        {
            if (this.Lines.Count == 0 && this.Lines2.Count == 0)
            {
                return;
            }

            linesToSend  = this.Lines;
            lines2ToSend = this.Lines2;

            this.Lines  = new List <string>();
            this.Lines2 = new List <string>();
        }

        string cmdName = CoresLib.Report_CommandName;

        if (cmdName._IsEmpty())
        {
            cmdName = "Unknown";
        }

        string resultStr = CoresLib.Report_SimpleResult._OneLine();

        if (resultStr._IsEmpty())
        {
            resultStr = "Ok";
        }

        StringWriter w = new StringWriter();

        w.WriteLine($"Reported: {DtOffsetNow._ToDtStr()}");
        w.WriteLine($"Program: {CoresLib.AppName} Built: {Env.BuildTimeStamp._ToDtStr()}");
        w.WriteLine($"Hostname: {Env.DnsFqdnHostName}");
        w.WriteLine($"Global: {globalInfo}, Local: {MyLocalIp}");
        w.WriteLine($"Command: {cmdName}, Result: {(CoresLib.Report_HasError ? "*Error* - " : "OK - ")}{resultStr}");

        if (lines2ToSend.Count >= 1)
        {
            w.WriteLine("=====================");
            w.WriteLine();

            lines2ToSend.ForEach(x => w.WriteLine(x));

            w.WriteLine();
        }

        if (linesToSend.Count >= 1)
        {
            w.WriteLine("--------------------");
            w.WriteLine();

            linesToSend.ForEach(x => w.WriteLine(x));

            w.WriteLine();
        }

        w.WriteLine("--------------------");
        EnvInfoSnapshot snapshot = new EnvInfoSnapshot();

        snapshot.CommandLine = "";
        w.WriteLine($"Program Details: {snapshot._GetObjectDump()}");

        w.WriteLine();

        string subject = $"Report - {cmdName}{(CoresLib.Report_HasError ? " *Error*" : "")} - {linesToSend.Count} lines - {Env.DnsHostName} - {MyLocalIp} ({globalInfo}): {resultStr._NormalizeSoftEther(true)._TruncStrEx(60)}";

        var        hostAndPort = this.Settings.SmtpServer._ParseHostnaneAndPort(Consts.Ports.Smtp);
        SmtpConfig cfg         = new SmtpConfig(hostAndPort.Item1, hostAndPort.Item2, this.Settings.SmtpUseSsl, this.Settings.SmtpUsername, this.Settings.SmtpPassword);

        Console.WriteLine("Report Subject: " + subject);

        try
        {
            Console.WriteLine($"SMTP Log Sending to '{this.Settings.MailTo}' ...");

            await TaskUtil.RetryAsync(async() =>
            {
                await SmtpUtil.SendAsync(cfg, this.Settings.MailFrom, this.Settings.MailTo, subject, w.ToString(), false, cancel);

                return(0);
            }, 1000, 3, cancel : cancel, randomInterval : true);

            Console.WriteLine("SMTP Log Sent.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("SMTP Log Send Error: " + ex.ToString());
        }
    }
Example #3
0
    static void ModuleInit()
    {
        PostDataCounter = 0;

        // Determine the Unique Log Process Id
        if (UniqueLogProcessId == -1)
        {
            if (CoresLib.Caps.Bit(CoresCaps.BlazorApp) == false)
            {
                UniqueLogProcessId = DetermineUniqueLogProcessId();
            }
            else
            {
                UniqueLogProcessId = Consts.BlazorApp.DummyProcessId;
            }
        }

        // Determine the destination directory
        if (CoresConfig.LocalLogRouterSettings.LogRootDir.IsDetermined == false)
        {
            string logDestDir = Path.Combine(Env.AppRootDir, "Log");

            if (CoresLib.Mode == CoresMode.Library)
            {
                logDestDir = Path.Combine(Env.AppRootDir, "Log", "_Lib", CoresLib.AppNameFnSafe);
            }

            CoresConfig.LocalLogRouterSettings.LogRootDir.Set(logDestDir);
        }

        Router = new LogRouter();

        // Console log
        Router.InstallLogRoute(new ConsoleLogRoute(LogKind.Default,
                                                   CoresConfig.DebugSettings.ConsoleMinimalLevel));

        var smtpOptions = LocalLogRouter.OptionsForSmtpLogRouterInit.Value;

        if (smtpOptions != null)
        {
            if (smtpOptions.SmtpFrom._IsFilled() &&
                smtpOptions.SmtpTo._IsFilled() &&
                smtpOptions.SmtpServer._IsFilled())
            {
                // SMTP log
                Router.InstallLogRoute(new SmtpLogRoute(LogKind.Default,
                                                        smtpOptions.SmtpLogLevel,
                                                        new SmtpLogRouteSettings(
                                                            smtpOptions.SmtpServer,
                                                            smtpOptions.SmtpUseSsl,
                                                            smtpOptions.SmtpUsername,
                                                            smtpOptions.SmtpPassword,
                                                            smtpOptions.SmtpFrom,
                                                            smtpOptions.SmtpTo)
                                                        ));
            }
        }

        // Buffered debug log
        BufferedLogRoute = Router.InstallLogRoute(new BufferedLogRoute(BufferedLogRoute.DefaultFilter,
                                                                       CoresConfig.DebugSettings.BufferedLogMinimalLevel,
                                                                       new LogInfoOptions()
        {
            WithTimeStamp = true
        },
                                                                       CoresConfig.LocalBufferedLogRouteSettings.BufferSize
                                                                       ));

        // Debug log (file)
        Router.InstallLogRoute(new LoggerLogRoute(LogKind.Default,
                                                  CoresConfig.DebugSettings.LogMinimalDebugLevel,
                                                  "debug",
                                                  CoresConfig.LocalLogRouterSettings.LogDebugDir.Value(),
                                                  CoresConfig.LocalLogRouterSettings.SwitchTypeForDebug,
                                                  CoresConfig.LocalLogRouterSettings.InfoOptionsForDebug));

        // Info log (file)
        Router.InstallLogRoute(new LoggerLogRoute(LogKind.Default,
                                                  CoresConfig.DebugSettings.LogMinimalInfoLevel,
                                                  "info",
                                                  CoresConfig.LocalLogRouterSettings.LogInfoDir.Value(),
                                                  CoresConfig.LocalLogRouterSettings.SwitchTypeForInfo,
                                                  CoresConfig.LocalLogRouterSettings.InfoOptionsForInfo));

        // Error log (file)
        Router.InstallLogRoute(new LoggerLogRoute(LogKind.Default,
                                                  CoresConfig.DebugSettings.LogMinimalErrorLevel,
                                                  "error",
                                                  CoresConfig.LocalLogRouterSettings.LogErrorDir.Value(),
                                                  CoresConfig.LocalLogRouterSettings.SwitchTypeForError,
                                                  CoresConfig.LocalLogRouterSettings.InfoOptionsForError));

        // Data log (file)
        Router.InstallLogRoute(new LoggerLogRoute(LogKind.Data,
                                                  CoresConfig.DebugSettings.LogMinimalDataLevel,
                                                  "data",
                                                  CoresConfig.LocalLogRouterSettings.LogDataDir.Value(),
                                                  CoresConfig.LocalLogRouterSettings.SwitchTypeForData,
                                                  CoresConfig.LocalLogRouterSettings.InfoOptionsForData));

        // Statistics log (file)
        Router.InstallLogRoute(new LoggerLogRoute(LogKind.Stat,
                                                  CoresConfig.DebugSettings.LogMinimalStatLevel,
                                                  "stat",
                                                  CoresConfig.LocalLogRouterSettings.LogStatDir.Value(),
                                                  CoresConfig.LocalLogRouterSettings.SwitchTypeForStat,
                                                  CoresConfig.LocalLogRouterSettings.InfoOptionsForStat,
                                                  CoresConfig.Logger.DefaultAutoDeleteTotalMinSize_ForStat));

        // Access log (file)
        Router.InstallLogRoute(new LoggerLogRoute(LogKind.Access,
                                                  CoresConfig.DebugSettings.LogMinimalAccessLevel,
                                                  "access",
                                                  CoresConfig.LocalLogRouterSettings.LogAccessDir.Value(),
                                                  CoresConfig.LocalLogRouterSettings.SwitchTypeForAccess,
                                                  CoresConfig.LocalLogRouterSettings.InfoOptionsForAccess));

        // Socket log (file)
        Router.InstallLogRoute(new LoggerLogRoute(LogKind.Socket,
                                                  CoresConfig.DebugSettings.LogMinimalSocketLevel,
                                                  "socket",
                                                  CoresConfig.LocalLogRouterSettings.LogSocketDir.Value(),
                                                  CoresConfig.LocalLogRouterSettings.SwitchTypeForSocket,
                                                  CoresConfig.LocalLogRouterSettings.InfoOptionsForSocket));

        EnvInfoSnapshot snapshot = new EnvInfoSnapshot("--- Process boottime log ---");

        Router.PostLog(new LogRecord(snapshot, LogPriority.Info, LogFlags.NoOutputToConsole, "boottime"), LogKind.Default);
    }