From: Victor Julien Date: Thu, 7 Jun 2012 09:44:39 +0000 (+0200) Subject: filemd5: handle case where no md5 support is compiled it. X-Git-Tag: suricata-1.3beta2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa121a1dd40dcf2ac70a6d43c5882ce7b7606ffd;p=thirdparty%2Fsuricata.git filemd5: handle case where no md5 support is compiled it. --- diff --git a/src/detect-filemd5.c b/src/detect-filemd5.c index 2ad97943e3..471d8e4ec8 100644 --- a/src/detect-filemd5.c +++ b/src/detect-filemd5.c @@ -54,6 +54,31 @@ #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 */ + diff --git a/src/util-error.c b/src/util-error.c index 3bda5d08ad..f2ea271ae6 100644 --- a/src/util-error.c +++ b/src/util-error.c @@ -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"; diff --git a/src/util-error.h b/src/util-error.h index e16f58107a..d36b6f93cf 100644 --- a/src/util-error.h +++ b/src/util-error.h @@ -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);