/* * Method called once per run, used to check log paths to * clean up any old logs. Called from MainWindow.cs - Load(). * * Logs are retained for however long the user requests (default is 5 days) */ public static void cleanLogs() { if (OptionsDisplay.gSettings == null) { OptionsDisplay.LoadGeneralConfig(); } try { // // first clean up the /Log/ folder // string folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); folder = folder + Path.DirectorySeparatorChar + "firebwall"; if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } folder = folder + Path.DirectorySeparatorChar + "Log"; if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } string filepath = folder; if (Directory.Exists(filepath)) { // grab all the logs in the directory string[] files = Directory.GetFiles(filepath); // iterate through them all looking for any that are old (>5) foreach (string s in files) { // grab the log date from file path name and // convert to DateTime for day check string logdate = s.Substring(s.LastIndexOf("_") + 1, (s.LastIndexOf(".") - s.LastIndexOf("_")) - 1); DateTimeFormatInfo dtfi = new DateTimeFormatInfo(); dtfi.ShortDatePattern = "MM-dd-yyyy"; dtfi.DateSeparator = "-"; DateTime logDate = Convert.ToDateTime(logdate, dtfi); // if it's old, get rid of it if ((DateTime.Now - logDate).Days > OptionsDisplay.gSettings.max_logs) { if (isFileLocked(new FileInfo(s))) { continue; } File.Delete(s); } } } // // Now clean up the pcap logs folder // folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); folder = folder + Path.DirectorySeparatorChar + "firebwall"; if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } folder = folder + Path.DirectorySeparatorChar + "pcapLogs"; if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } filepath = folder; if (Directory.Exists(filepath)) { string[] files = Directory.GetFiles(filepath); if (files.Length > OptionsDisplay.gSettings.max_pcap_logs) { // hack off the number of files found in Settings (default should be 25), starting // from the oldest for (int i = 0; i < (files.Length - OptionsDisplay.gSettings.max_pcap_logs); ++i) { // if it's not accessible, skip it for next time if (isFileLocked(new FileInfo(files[i]))) { continue; } File.Delete(files[i]); } } } } catch (Exception e) { LogCenter.WriteErrorLog(e); } }
private void MainWindow_Load(object sender, EventArgs e) { ColorScheme.SetColorScheme(this); //optionsTab.ItemSize = new Size((this.Width / 4) - 6, optionsTab.ItemSize.Height); System.Reflection.Assembly target = System.Reflection.Assembly.GetExecutingAssembly(); this.Icon = new System.Drawing.Icon(target.GetManifestResourceStream("PassThru.Resources.newIcon.ico")); LogCenter.ti = new TrayIcon(); Program.uc = new UpdateChecker(); Program.uc.Updater(); PassThru.Tabs.DownloadCenter.Instance.Width = 800; PassThru.Tabs.DownloadCenter.Instance.Height = 600; PassThru.Tabs.DownloadCenter.Instance.Show(); PassThru.Tabs.DownloadCenter.Instance.Hide(); // call the log purger LogCenter.cleanLogs(); log = new Tabs.LogDisplay(); log.Dock = DockStyle.Fill; ColorScheme.SetColorScheme(log); LogCenter.PushLogEvent += new LogCenter.NewLogEvent(log.Instance_PushLogEvent); splitContainer1.Panel2.Controls.Add(log); // load up the adapter control handler ac = new AdapterControl(); ColorScheme.SetColorScheme(ac); ac.Dock = DockStyle.Fill; //tabPage3.Controls.Add(ac); // load up the options tab handler od = new OptionsDisplay(); ColorScheme.SetColorScheme(od); od.Dock = DockStyle.Fill; //tabPage2.Controls.Add(od); // load up the options tab handler help = new Help(); ColorScheme.SetColorScheme(help); help.Dock = DockStyle.Fill; //tabPage4.Controls.Add(help); ColorScheme.ThemeChanged += new System.Threading.ThreadStart(ColorScheme_ThemeChanged); switch (LanguageConfig.GetCurrentLanguage()) { case LanguageConfig.Language.NONE: case LanguageConfig.Language.ENGLISH: tabPage1.Text = "Log"; tabPage2.Text = "Options"; tabPage3.Text = "Adapters"; break; case LanguageConfig.Language.CHINESE: tabPage1.Text = "登录"; tabPage2.Text = "选项"; tabPage3.Text = "适配器"; break; case LanguageConfig.Language.GERMAN: tabPage1.Text = "Log"; tabPage2.Text = "Optionen"; tabPage3.Text = "Adapter"; break; case LanguageConfig.Language.RUSSIAN: tabPage1.Text = "журнал"; tabPage2.Text = "опции"; tabPage3.Text = "Адаптеры"; break; case LanguageConfig.Language.SPANISH: tabPage1.Text = "log"; tabPage2.Text = "opciones"; tabPage3.Text = "adaptadores"; break; case LanguageConfig.Language.PORTUGUESE: tabPage1.Text = "Entrar"; tabPage2.Text = "opções"; tabPage3.Text = "adaptadores"; break; } MainWindow_Resize(null, null); if (TrayIcon.StartMinimized) { this.WindowState = FormWindowState.Minimized; } ColorScheme_ThemeChanged(); }