예제 #1
0
        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");
            }
        }
예제 #2
0
        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();
                    }
                }
            }
        }