CPPFLAGS="${CPPFLAGS} -I${with_libnspr_includes}"
fi
- AC_CHECK_HEADER(nspr.h,,[AC_ERROR(nspr.h not found ...)])
-
- if test "$with_libnspr_libraries" != "no"; then
- LDFLAGS="${LDFLAGS} -L${with_libnspr_libraries}"
- fi
+ AC_CHECK_HEADER(nspr/nspr.h,NSPR="yes",NSPR="no")
+ if test "$NSPR" = "yes"; then
+ if test "$with_libnspr_libraries" != "no"; then
+ LDFLAGS="${LDFLAGS} -L${with_libnspr_libraries}"
+ fi
- MAGIC=""
- AC_CHECK_LIB(nspr4, PR_GetCurrentThread,, NSPR="no")
+ AC_CHECK_LIB(nspr4, PR_GetCurrentThread,, NSPR="no")
- if test "$NSPR" = "no"; then
- echo
- echo " ERROR! libnspr library not found, go get it"
- echo " from Mozilla."
- echo
- exit 1
+ if test "$NSPR" = "no"; then
+ echo
+ echo " ERROR! libnspr library not found, go get it"
+ echo " from Mozilla."
+ echo
+ exit 1
+ fi
fi
+
#libnss
AC_ARG_WITH(libnss_includes,
[ --with-libnss-includes=DIR libnss include directory],
CPPFLAGS="${CPPFLAGS} -I${with_libnss_includes}"
fi
- AC_CHECK_HEADER(sechash.h,,[AC_ERROR(sechash.h not found ...)])
+ AC_CHECK_HEADER(sechash.h,NSS="yes",NSS="no")
+ if test "$NSS" = "yes"; then
+ if test "$with_libnss_libraries" != "no"; then
+ LDFLAGS="${LDFLAGS} -L${with_libnss_libraries}"
+ fi
- if test "$with_libnss_libraries" != "no"; then
- LDFLAGS="${LDFLAGS} -L${with_libnss_libraries}"
- fi
+ AC_CHECK_LIB(nss3, HASH_Begin,, NSS="no")
- MAGIC=""
- AC_CHECK_LIB(nss3, HASH_Begin,, NSS="no")
+ if test "$NSS" = "no"; then
+ echo
+ echo " ERROR! libnss library not found, go get it"
+ echo " from Mozilla."
+ echo
+ exit 1
+ fi
- if test "$NSS" = "no"; then
- echo
- echo " ERROR! libnss library not found, go get it"
- echo " from Mozilla."
- echo
- exit 1
+ AC_DEFINE([HAVE_NSS],[1],[libnss available for md5])
fi
#libmagic
switch (ff->state) {
case FILE_STATE_CLOSED:
fprintf(fp, "STATE: CLOSED\n");
+#ifdef HAVE_NSS
if (ff->flags & FILE_MD5) {
fprintf(fp, "MD5: ");
size_t x;
}
fprintf(fp, "\n");
}
+#endif
break;
case FILE_STATE_TRUNCATED:
fprintf(fp, "STATE: TRUNCATED\n");
switch (ff->state) {
case FILE_STATE_CLOSED:
fprintf(fp, "\"state\": \"CLOSED\", ");
+#ifdef HAVE_NSS
if (ff->flags & FILE_MD5) {
fprintf(fp, "\"md5\": \"");
size_t x;
}
fprintf(fp, "\", ");
}
+#endif
break;
case FILE_STATE_TRUNCATED:
fprintf(fp, "\"state\": \"TRUNCATED\", ");
#include <signal.h>
#include <pthread.h>
+#ifdef HAVE_NSS
#include <nss.h>
+#endif
#include "suricata.h"
#include "decode.h"
#endif
#ifdef PCRE_HAVE_JIT
strlcat(features, "PCRE_JIT ", sizeof(features));
+#endif
+#ifdef HAVE_NSS
+ strlcat(features, "HAVE_NSS ", sizeof(features));
#endif
if (strlen(features) == 0) {
strlcat(features, "none", sizeof(features));
SC_ATOMIC_INIT(engine_stage);
+#ifdef HAVE_NSS
/* init NSS for md5 */
NSS_NoDB_Init(NULL);
+#endif
/* initialize the logging subsys */
SCLogInitLogModule(NULL);
ff->chunks_cnt_max = ff->chunks_cnt;
#endif
+#ifdef HAVE_NSS
if (ff->md5_ctx)
HASH_Update(ff->md5_ctx, ffd->data, ffd->len);
+#endif
SCReturnInt(0);
}
new->name_len = name_len;
memcpy(new->name, name, name_len);
+#ifdef HAVE_NSS
if (g_file_force_md5) {
new->md5_ctx = HASH_Create(HASH_AlgMD5);
if (new->md5_ctx != NULL) {
HASH_Begin(new->md5_ctx);
}
}
+#endif
return new;
}
}
}
+#ifdef HAVE_NSS
if (ff->md5_ctx)
HASH_Destroy(ff->md5_ctx);
-
+#endif
SCLogDebug("ff chunks_cnt %"PRIu64", chunks_cnt_max %"PRIu64,
ff->chunks_cnt, ff->chunks_cnt_max);
SCFree(ff);
ff->state = FILE_STATE_CLOSED;
SCLogDebug("flowfile state transitioned to FILE_STATE_CLOSED");
+#ifdef HAVE_NSS
if (ff->md5_ctx) {
unsigned int len = 0;
HASH_End(ff->md5_ctx, ff->md5, &len, sizeof(ff->md5));
ff->flags |= FILE_MD5;
}
+#endif
}
SCReturnInt(0);