public void Stop() { lock (MainController.GetInstance()) { if (confTimer != null) { confTimer.Enabled = false; } if (Configuration.BlockScreenShot) { ScreenShotContoller.Stop(); } MyDLPEP.MiniFilterController.GetInstance().Stop(); Engine.Stop(); SessionServer.Stop(); if (Configuration.UsbSerialAccessControl) { Core.USBController.Deactive(); } if (Configuration.PrinterMonitor) { Service.PrinterController.getInstance().Stop(); } if (Configuration.RemovableStorageEncryption) { DiskCryptor.StopDcrypt(); } Logger.GetInstance().Info("mydlpepwin service stopped"); } }
private void OnTimedConfCheckEvent(object source, ElapsedEventArgs e) { bool oldUSBSerialAC = Configuration.UsbSerialAccessControl; bool oldPrinterMonitor = Configuration.PrinterMonitor; bool oldArchiveInbound = Configuration.ArchiveInbound; bool oldBlockScreenShot = Configuration.BlockScreenShot; bool oldRemStorEncryption = Configuration.RemovableStorageEncryption; bool oldHasEncryptionKey = Configuration.HasEncryptionKey; String oldPrinterPrefix = Configuration.PrinterPrefix; if (SeapClient.HasNewConfiguration()) { Logger.GetInstance().Info("New configuration notified."); Configuration.GetUserConf(); if (Configuration.UsbSerialAccessControl && !oldUSBSerialAC) { Core.USBController.Activate(); } else if (!Configuration.UsbSerialAccessControl && oldUSBSerialAC) { Core.USBController.Deactive(); } if (Configuration.UsbSerialAccessControl) { USBController.InvalidateCache(); Core.USBController.GetUSBStorages(); } if (Configuration.PrinterMonitor && !oldPrinterMonitor) { Service.PrinterController.getInstance().Start(); } else if (!Configuration.PrinterMonitor && oldPrinterMonitor) { Service.PrinterController.getInstance().Stop(); } else if (Configuration.PrinterMonitor && (Configuration.PrinterPrefix != oldPrinterPrefix)) { Service.PrinterController.getInstance().Stop(); Service.PrinterController.getInstance().Start(); } if (Configuration.RemovableStorageEncryption && !oldRemStorEncryption) { DiskCryptor.StartDcrypt(); } else if (!Configuration.RemovableStorageEncryption && oldRemStorEncryption) { DiskCryptor.StopDcrypt(); } if (oldArchiveInbound != Configuration.ArchiveInbound || oldUSBSerialAC != Configuration.UsbSerialAccessControl) { Logger.GetInstance().Debug("New mydlpmf configuration"); MyDLPEP.MiniFilterController.GetInstance().Stop(); MyDLPEP.MiniFilterController.GetInstance().Start(); MyDLPEP.FilterListener.getInstance().StartListener(); } if (oldBlockScreenShot) { ScreenShotContoller.Stop(); } if (Configuration.BlockScreenShot) { ScreenShotContoller.Start(); } } if (Configuration.RemovableStorageEncryption) { if (oldHasEncryptionKey) { if (!SeapClient.HasKeyfile()) { Configuration.HasEncryptionKey = false; DiskCryptor.AfterKeyLose(); } } else { if (SeapClient.HasKeyfile()) { Configuration.HasEncryptionKey = true; DiskCryptor.AfterKeyReceive(); } } } }