示例#1
0
        public void Initialize(List <SignatureElement> elements)
        {
            logger.Debug("Initializing {0} detector", this.Name);

            var matchingElements = from element in elements
                                   where element.Type == this.Type
                                   select element;

            /*
             * If there were no ExtensionSignatureElement instances in the provided
             * list of elements then this detector will go unused during the scan.
             */
            if (matchingElements.Count() < 1)
            {
                logger.Debug("No matching elements. This detector will not be used.");
                this.Status = DetectorStatus.UNUSED;
            }
            else
            {
                foreach (var element in matchingElements)
                {
                    if (element is ExtensionSignatureElement extensionElement)
                    {
                        logger.Trace("Loading element {0}", element.Name);
                        extensions.Add(extensionElement.Extension.Name);
                    }
                }

                this.Status = DetectorStatus.INITIALIZED;
            }
        }
示例#2
0
        public void Initialize(List <SignatureElement> elements)
        {
            logger.Debug("Initializing {0} detector", this.Name);

            var matchingElements = from element in elements
                                   where element.Type == this.Type
                                   select element;

            if (matchingElements.Count() < 1)
            {
                logger.Debug("No matching elements. This detector will not be used.");
                this.Status = DetectorStatus.UNUSED;
            }
            else
            {
                foreach (var element in matchingElements)
                {
                    if (element is KeywordSignatureElement keywordElement)
                    {
                        logger.Trace("Loading element {0}", element.Name);
                        keywords.Add(keywordElement.Word);
                    }
                }

                this.Status = DetectorStatus.INITIALIZED;
            }
        }
示例#3
0
 /// <summary>
 /// Sets the status of a detector
 /// </summary>
 /// <param name="response">Response object</param>
 /// <param name="health">Detector Status</param>
 /// <param name="message">Detector status message</param>
 /// <example>
 /// This sample shows how to use <see cref="SetDetectorStatus"/> method.
 /// <code>
 /// public async static Task<![CDATA[<Response>]]> Run(DataProviders dp, OperationContext cxt, Response res)
 /// {
 ///     res.SetDetectorStatus(DetectorStatus.Critical, "This is an error message that will come from the detector");
 /// }
 /// </code>
 /// </example>
 public static void SetDetectorStatus(this Response response, DetectorStatus status, string message = null)
 {
     response.Status = new Status()
     {
         StatusId = status,
         Message  = message
     };
 }
示例#4
0
        public void Initialize(List <SignatureElement> elements)
        {
            logger.Debug("Initializing {0} detector", this.Name);

            try
            {
                var firstElement = (SizeSignatureElement)elements.First(element => element is SizeSignatureElement);

                logger.Trace("Loading element {0}", firstElement.Name);
                maxSize = firstElement.Limit;
                maxSizeAsReadableString = Utils.GetDynamicFileSize(maxSize);

                this.Status = DetectorStatus.INITIALIZED;
            }
            catch (InvalidOperationException)
            {
                logger.Debug("No matching size elements. This detector will not be used.");
                this.Status = DetectorStatus.UNUSED;
            }
        }
示例#5
0
        public void Initialize(List <SignatureElement> elements)
        {
            logger.Debug("Initializing {0} detector", this.Name);
            try
            {
                Task <bool> pingSuccess = clam.PingAsync();
                pingSuccess.Wait();
                if (pingSuccess.Result == false)
                {
                    return;
                }
            }
            catch (Exception ex)
            {
                logger.Warn(ex, "ClamAV server not contactable; the detector will not be used.");
                return;
            }

            logger.Info("Successfully connected to ClamAV server");
            this.Status = DetectorStatus.INITIALIZED;
        }
示例#6
0
        private BaseMessage makeMessage(MessageType _key, byte[] payload)
        {
            BaseMessage message = null;

            switch (_key)
            {
            case MessageType.DETECTOR_STATUS_MESSAGE:
            {
                message = new DetectorStatus();
                message.deserialize(payload);
                break;
            }

            case MessageType.DETECTOR_GET_IMAGE_DONE:
            {
                message = new DetectorGetImageDone();
                message.deserialize(payload);
                break;
            }

            case MessageType.DETECTOR_ERROR_MESSAGE:
            {
                message = new DetectorError();
                message.deserialize(payload);
                break;
            }

            default:
            {
                //Logger.Info("DetectorCodec key = {0} does NOT match any key", BitConverter.ToString(BitConverter.GetBytes((ushort)_key)));
                break;
            }
            }

            return(message);
        }
 public Status()
 {
     StatusId = DetectorStatus.None;
 }
示例#8
0
 public void Initialize(List <SignatureElement> elements)
 {
     logger.Debug("Initializing {0} detector", this.Name);
     this.Status = DetectorStatus.INITIALIZED;
 }
示例#9
0
        private void handleResponseMessage(BaseMessage msg)
        {
            switch (msg.getMessageType())
            {
            case MessageType.DETECTOR_STATUS_MESSAGE:
            {
                DetectorStatus detectorStatus = msg as DetectorStatus;
                this.mState         = detectorStatus.getState();
                this.mOperationMode = detectorStatus.getOperationMode();
                this.mFPS           = detectorStatus.getFPS();
                this.mNOF           = detectorStatus.getNOF();
                this.mBMPRate       = detectorStatus.getBMPRate();

                this.Dispatcher.Invoke((MethodInvoker) delegate
                    {
                        switch (this.mState)
                        {
                        case DetectorState.DISCONNECTED:
                            {
                                lbDetectorState.Content      = "Chưa kết nối";
                                lbDetectorBMPRate.Content    = "";
                                lbDetectorFPS.Content        = "";
                                lbDetectorNumOfFrame.Content = "";
                                break;
                            }

                        case DetectorState.CONNECTED:
                            {
                                lbDetectorState.Content  = "Đã kết nối";
                                circleDetectorState.Fill = Brushes.Green;
                                //lbDetectorBMPRate.Content = "BMPRate ( " + this.mBMPRate.ToString() + " % )";
                                lbDetectorFPS.Content        = "FPS (" + this.mFPS.ToString() + ")";
                                lbDetectorNumOfFrame.Content = "Số ảnh chụp(" + this.mNOF.ToString() + ")";
                                break;
                            }

                        case DetectorState.CALIBARATING:
                            {
                                lbDetectorState.Content  = "Đang hiệu chỉnh";
                                circleDetectorState.Fill = Brushes.Green;
                                //lbDetectorBMPRate.Content = "BMPRate ( " + this.mBMPRate.ToString() + " % )";
                                lbDetectorFPS.Content        = "FPS (" + this.mFPS.ToString() + ")";
                                lbDetectorNumOfFrame.Content = "Số ảnh chụp(" + this.mNOF.ToString() + ")";
                                break;
                            }

                        case DetectorState.CALIBRATE_DARK_DONE:
                            {
                                lbDetectorState.Content  = "Hiệu chỉnh tối xong";
                                circleDetectorState.Fill = Brushes.Green;
                                //lbDetectorBMPRate.Content = "BMPRate ( " + this.mBMPRate.ToString() + " % )";
                                lbDetectorFPS.Content        = "FPS ( " + this.mFPS.ToString() + " )";
                                lbDetectorNumOfFrame.Content = "Số ảnh chụp(" + this.mNOF.ToString() + ")";
                                break;
                            }

                        case DetectorState.CALIBRATE_BRIGHT_DONE:
                            {
                                lbDetectorState.Content      = "Hiệu chỉnh sáng xong";
                                circleDetectorState.Fill     = Brushes.Green;
                                lbDetectorBMPRate.Content    = "BMPRate ( " + this.mBMPRate.ToString() + " % )";
                                lbDetectorFPS.Content        = "FPS ( " + this.mFPS.ToString() + " )";
                                lbDetectorNumOfFrame.Content = "Số ảnh chụp(" + this.mNOF.ToString() + ")";
                                break;
                            }

                        case DetectorState.READY_GET_IMAGE:
                            {
                                lbDetectorState.Content      = "Sẵn sàng chụp ảnh";
                                circleDetectorState.Fill     = Brushes.Green;
                                lbDetectorBMPRate.Content    = "BMPRate (" + this.mBMPRate.ToString() + " %)";
                                lbDetectorFPS.Content        = "FPS ( " + this.mFPS.ToString() + " )";
                                lbDetectorNumOfFrame.Content = "Số ảnh chụp(" + this.mNOF.ToString() + ")";
                                break;
                            }
                        }
                    });

                //Logger.Info("DETECTOR_STATUS_MESSAGE: state = {0}, mode = {1}, FPS = {2}, NOF = {3}, BMP = {4}",
                //    detectorStatus.getState(), detectorStatus.getOperationMode(), detectorStatus.getFPS(), detectorStatus.getNOF(), detectorStatus.getBMPRate());
                break;
            }

            case MessageType.DETECTOR_GET_IMAGE_DONE:
            {
                DetectorGetImageDone res = msg as DetectorGetImageDone;
                this.mCurResImage = res.getIndex();
                Logger.Info("DETECTOR_GET_IMAGE_DONE: index = {0}", res.getIndex());
                break;
            }

            case MessageType.DETECTOR_ERROR_MESSAGE:
            {
                DetectorError res = msg as DetectorError;
                Logger.Info("DETECTOR_ERROR_MESSAGE: error code = {0}", res.getErrorCode());
                break;
            }

            default:
            {
                //Logger.Info("DetectorCodec key = {0} does NOT match any key", BitConverter.ToString(BitConverter.GetBytes((ushort)_key)));
                break;
            }
            }
        }