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);
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()); } }
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); }