Esempio n. 1
0
        /// <summary>
        /// Return version of database service is curently using
        /// </summary>
        /// <returns></returns>
        public static string GetDBVersion()
        {
            // TEST!!
            return("Unknown");

            ClamWinScan Scan = new ClamWinScan(FakeScanID);

            return(Scan.GetDBVersion());
        }
Esempio n. 2
0
        /// <summary>
        /// Opens service pipe
        /// </summary>
        /// <returns>true if success, false if failed</returns>
        public static bool Open(IntPtr handle)
        {
            /*
             * System.ServiceProcess.ServiceController controller = null;
             * try
             * {
             *  controller = new System.ServiceProcess.ServiceController("ClamWind");
             *
             *  if (controller.Status != System.ServiceProcess.ServiceControllerStatus.Running)
             *  {
             *      controller.Start();
             *
             *      controller.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running,
             *                               new TimeSpan(0, 0, 0, 0, 35 * 1000)
             *                              );
             *      if (controller.Status != System.ServiceProcess.ServiceControllerStatus.Running)
             *      {
             *          throw 0;
             *      }
             *  }
             * }
             * catch
             * {
             *  return false;
             * }
             * finally
             * {
             *  controller.Close();
             * }   */

            varFilterJobsUpdatedEvent = Win32API.CreateEvent((IntPtr)0, false, false, "FilterListenerJobsUpdated");
            varStopFilterListening    = Win32API.CreateEvent((IntPtr)0, false, false, "StopFilterListening");

            FilterFakeScan = new ClamWinScan(ClamWinScanner.FakeScanID);
            IntPtr[] listeners = new IntPtr[1];
            listeners[0] = handle;
            FilterFakeScan.StartFilterListening(listeners);
            return(true);
        }
Esempio n. 3
0
        /// <summary>
        /// Create new scan object or select existing one(by ID) and start scan
        /// </summary>
        /// <param name="Items">Items for scan</param>
        /// <param name="Listeners">Listeners to be notified</param>
        /// <param name="ID">Scan identifier</param>
        /// <returns>1 on success or error code if failed</returns>
        public static int StartScan(ref ScannerItem[] Items, ref IntPtr[] Listeners, int ID)
        {
            if (ID == FakeScanID)
            {
                return(-128);
            }

            foreach (ClamWinScan scan in Scans)
            {
                if (scan.GetScanID() == ID)
                {
                    // Scan already exist
                    return(scan.StartScan(ref Items, Listeners));
                }
            }

            // New scan
            ClamWinScan Scan = new ClamWinScan(ID);

            Scans.Add(Scan);

            return(Scan.StartScan(ref Items, Listeners));
        }
Esempio n. 4
0
        /// <summary>
        /// Change OnAccess Scaner status
        /// </summary>
        /// <param name="status"></param>
        public static bool SetOnAccessScanerStatus(ClamWinSettings.OnAccessStatus status)
        {
            ClamWinScan Scan = new ClamWinScan(FakeScanID);

            return(Scan.SetOnAccessScanerStatus(status));
        }
Esempio n. 5
0
        /// <summary>
        /// Register or unregister gui handle in service
        /// </summary>
        /// <param name="handle"></param>
        /// <param name="register"></param>
        /// <returns></returns>
        public static bool ManageGuiHandle(IntPtr handle, bool register)
        {
            ClamWinScan Scan = new ClamWinScan(FakeScanID);

            return(Scan.ManageGuiHandle(handle, register));
        }