]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect file: enable HTTP inspection from validate func
authorVictor Julien <victor@inliniac.net>
Fri, 16 Sep 2016 13:13:33 +0000 (15:13 +0200)
committerVictor Julien <victor@inliniac.net>
Mon, 19 Sep 2016 11:03:48 +0000 (13:03 +0200)
src/detect-fileext.c
src/detect-filemagic.c
src/detect-filemd5.c
src/detect-filename.c
src/detect-filesize.c
src/detect-parse.c

index 973d5082117cc6dd4125f93bdfe300228e8f1ac8..73ce1d346e3e2fb3ec993112565ebf0cb7b2844a 100644 (file)
@@ -211,10 +211,6 @@ static int DetectFileextSetup (DetectEngineCtx *de_ctx, Signature *s, char *str)
 
     SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_FILEMATCH);
 
-    if (s->alproto == ALPROTO_HTTP) {
-        AppLayerHtpNeedFileInspection();
-    }
-
     s->file_flags |= (FILE_SIG_NEED_FILE|FILE_SIG_NEED_FILENAME);
     return 0;
 
index 950b0290f06df939eda30f5e17d45ecac1b63584..26a3b969ab91b8bcd8192871c7b921d7eed8d06a 100644 (file)
@@ -359,10 +359,6 @@ static int DetectFilemagicSetup (DetectEngineCtx *de_ctx, Signature *s, char *st
 
     SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_FILEMATCH);
 
-    if (s->alproto == ALPROTO_HTTP) {
-        AppLayerHtpNeedFileInspection();
-    }
-
     s->file_flags |= (FILE_SIG_NEED_FILE|FILE_SIG_NEED_MAGIC);
     return 0;
 
index d8a18712260949e74888f4948a3839a52565873d..2e1988a630ad436d1c04f245935f368c75ca1e59 100644 (file)
@@ -324,10 +324,6 @@ static int DetectFileMd5Setup (DetectEngineCtx *de_ctx, Signature *s, char *str)
 
     SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_FILEMATCH);
 
-    if (s->alproto == ALPROTO_HTTP) {
-        AppLayerHtpNeedFileInspection();
-    }
-
     s->file_flags |= (FILE_SIG_NEED_FILE|FILE_SIG_NEED_MD5);
     return 0;
 
index 0fd55392ef5f2984f6abbac9c7b1ed698c687656..956d7340c774db144605942594539c5f0f950dcc 100644 (file)
@@ -216,10 +216,6 @@ static int DetectFilenameSetup (DetectEngineCtx *de_ctx, Signature *s, char *str
 
     SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_FILEMATCH);
 
-    if (s->alproto == ALPROTO_HTTP) {
-        AppLayerHtpNeedFileInspection();
-    }
-
     s->file_flags |= (FILE_SIG_NEED_FILE|FILE_SIG_NEED_FILENAME);
     return 0;
 
index 9aeae0c6f499dabaed3b671e217dbb45ab9290b5..3f21745a32c9ab13e7f1d62eea438d8bfbece790 100644 (file)
@@ -289,10 +289,6 @@ static int DetectFilesizeSetup (DetectEngineCtx *de_ctx, Signature *s, char *str
 
     SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_FILEMATCH);
 
-    if (s->alproto == ALPROTO_HTTP) {
-        AppLayerHtpNeedFileInspection();
-    }
-
     s->file_flags |= (FILE_SIG_NEED_FILE|FILE_SIG_NEED_SIZE);
     SCReturnInt(0);
 
index 3f6a7a6a8a4c62b324ddd0d4927d7ba66aa7b80f..f78b6033c78ba8b15c9a80f4b9fd9e6b7d9f47b7 100644 (file)
@@ -1421,13 +1421,18 @@ int SigValidate(DetectEngineCtx *de_ctx, Signature *s)
     }
 #endif
 
-    if (((s->flags & SIG_FLAG_FILESTORE) || s->file_flags != 0) &&
-        s->alproto != ALPROTO_UNKNOWN &&
-        !AppLayerParserSupportsFiles(IPPROTO_TCP, s->alproto))
-    {
-        SCLogError(SC_ERR_NO_FILES_FOR_PROTOCOL, "protocol %s doesn't "
-                "support file matching", AppProtoToString(s->alproto));
-        SCReturnInt(0);
+    if ((s->flags & SIG_FLAG_FILESTORE) || s->file_flags != 0) {
+        if (s->alproto != ALPROTO_UNKNOWN &&
+                !AppLayerParserSupportsFiles(IPPROTO_TCP, s->alproto))
+        {
+            SCLogError(SC_ERR_NO_FILES_FOR_PROTOCOL, "protocol %s doesn't "
+                    "support file matching", AppProtoToString(s->alproto));
+            SCReturnInt(0);
+        }
+
+        if (s->alproto == ALPROTO_HTTP) {
+            AppLayerHtpNeedFileInspection();
+        }
     }
 
     SCReturnInt(1);