]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
filemd5: handle case where no md5 support is compiled it.
authorVictor Julien <victor@inliniac.net>
Thu, 7 Jun 2012 09:44:39 +0000 (11:44 +0200)
committerVictor Julien <victor@inliniac.net>
Thu, 7 Jun 2012 09:44:39 +0000 (11:44 +0200)
src/detect-filemd5.c
src/util-error.c
src/util-error.h

index 2ad97943e3d0af7b50b61705a2fc9be0c493ec38..471d8e4ec8de8605b88c85489fa6d85ba91c3ab1 100644 (file)
 #include "queue.h"
 #include "util-rohash.h"
 
+#ifndef HAVE_NSS
+
+static int DetectFileMd5SetupNoSupport (DetectEngineCtx *a, Signature *b, char *c) {
+    SCLogError(SC_ERR_NO_MD5_SUPPORT, "no MD5 calculation support built in, needed for filemd5 keyword");
+    return -1;
+}
+
+/**
+ * \brief Registration function for keyword: filemd5
+ */
+void DetectFileMd5Register(void) {
+    sigmatch_table[DETECT_FILEMD5].name = "filemd5";
+    sigmatch_table[DETECT_FILEMD5].Match = NULL;
+    sigmatch_table[DETECT_FILEMD5].AppLayerMatch = NULL;
+    sigmatch_table[DETECT_FILEMD5].alproto = ALPROTO_HTTP;
+    sigmatch_table[DETECT_FILEMD5].Setup = DetectFileMd5SetupNoSupport;
+    sigmatch_table[DETECT_FILEMD5].Free  = NULL;
+    sigmatch_table[DETECT_FILEMD5].RegisterTests = NULL;
+
+       SCLogDebug("registering filemd5 rule option");
+    return;
+}
+
+#else /* HAVE_NSS */
+
 int DetectFileMd5Match (ThreadVars *, DetectEngineThreadCtx *, Flow *, uint8_t, void *, Signature *, SigMatch *);
 static int DetectFileMd5Setup (DetectEngineCtx *, Signature *, char *);
 void DetectFileMd5RegisterTests(void);
@@ -359,3 +384,6 @@ void DetectFileMd5RegisterTests(void) {
     UtRegisterTest("MD5MatchTest01", MD5MatchTest01, 1);
 #endif
 }
+
+#endif /* HAVE_NSS */
+
index 3bda5d08ad9e3a4d9dbcec688ad4f058e71c050c..f2ea271ae6d8b10059c90547e773315630a80a58 100644 (file)
@@ -229,6 +229,7 @@ const char * SCErrorToString(SCError err)
         CASE_CODE (SC_ERR_HOST_INIT);
         CASE_CODE (SC_ERR_MEM_BUFFER_API);
         CASE_CODE (SC_ERR_INVALID_MD5);
+        CASE_CODE (SC_ERR_NO_MD5_SUPPORT);
 
         default:
             return "UNKNOWN_ERROR";
index e16f58107a3c6bfd51a7bc31a8a776b90c692bd8..d36b6f93cf1ef447077988fb61753678b5b7ae3b 100644 (file)
@@ -243,6 +243,7 @@ typedef enum {
     SC_ERR_HOST_INIT,
     SC_ERR_MEM_BUFFER_API,
     SC_ERR_INVALID_MD5,
+    SC_ERR_NO_MD5_SUPPORT,
 } SCError;
 
 const char *SCErrorToString(SCError);