private static void Main(string[] args) { SetUpConsole(); var files = args.ToList(); if (files.Count == 0) { PrintUsage(); return; } // config options are handled in Misc.Settings Utilities.RemoveConfigOptions(ref files); if (!Utilities.GetFiles(ref files)) { EndPrompt(); return; } Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; if (Settings.UseDBC) { var startTime = DateTime.Now; DBC.DBC.Load(); var span = DateTime.Now.Subtract(startTime); Trace.WriteLine($"DBC loaded in { span.ToFormattedString() }."); } // Disable DB when we don't need its data (dumping to a binary file) if (!Settings.DumpFormatWithSQL()) { SQLConnector.Enabled = false; SSHTunnel.Enabled = false; } else { Filters.Initialize(); } SQLConnector.ReadDB(); var count = 0; foreach (var file in files) { SessionHandler.ZStreams.Clear(); if (Settings.ClientBuild != Enums.ClientVersionBuild.Zero) { ClientVersion.SetVersion(Settings.ClientBuild); } try { var sf = new SniffFile(file, Settings.DumpFormat, Tuple.Create(++count, files.Count)); sf.ProcessFile(); } catch (IOException ex) { Console.WriteLine($"Can't process {file}. Skipping. Message: {ex.Message}"); } } if (!string.IsNullOrWhiteSpace(Settings.SQLFileName) && Settings.DumpFormatWithSQL()) { Builder.DumpSQL("Dumping global sql", Settings.SQLFileName, SniffFile.GetHeader("multi")); } SQLConnector.Disconnect(); SSHTunnel.Disconnect(); if (Settings.LogErrors) { Logger.WriteErrors(); } Trace.Listeners.Remove("ConsoleMirror"); EndPrompt(); }
private static void Main(string[] args) { SetUpConsole(); var files = args.ToList(); if (files.Count == 0) { PrintUsage(); return; } // config options are handled in Misc.Settings Utilities.RemoveConfigOptions(ref files); if (!Utilities.GetFiles(ref files)) { EndPrompt(); return; } Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; // Disable DB when we don't need its data (dumping to a binary file) if (!Settings.DumpFormatWithSQL()) { SQLConnector.Enabled = false; SSHTunnel.Enabled = false; } else { Filters.Initialize(); } SQLConnector.ReadDB(); var count = 0; foreach (var file in files) { SessionHandler.ZStreams.Clear(); ClientVersion.SetVersion(Settings.ClientBuild); var sf = new SniffFile(file, Settings.DumpFormat, Tuple.Create(++count, files.Count)); sf.ProcessFile(); } if (!String.IsNullOrWhiteSpace(Settings.SQLFileName) && Settings.DumpFormatWithSQL()) { Builder.DumpSQL("Dumping global sql", Settings.SQLFileName, SniffFile.GetHeader("multi")); } SQLConnector.Disconnect(); SSHTunnel.Disconnect(); if (Settings.LogErrors) { Logger.WriteErrors(); } Trace.Listeners.Remove("ConsoleMirror"); EndPrompt(); }