diff --git a/autogen.sh b/autogen.sh index bb9c26407b..1e15b809ae 100755 --- a/autogen.sh +++ b/autogen.sh @@ -10,5 +10,5 @@ else echo "Failed to find libtoolize or glibtoolize, please ensure it is installed and accessible via your PATH env variable" exit 1 fi; -autoreconf -fv --install || exit 1 +autoreconf -fv --install || exit 1 echo "You can now run \"./configure\" and then \"make\"." diff --git a/configure.ac b/configure.ac index aa6f8bf75b..52fdf09a06 100644 --- a/configure.ac +++ b/configure.ac @@ -128,43 +128,49 @@ AC_INIT(configure.ac) e_magic_file="/usr/share/file/magic" case "$host" in - *-*-*freebsd*) - CFLAGS="${CFLAGS} -DOS_FREEBSD" - CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/local/include/libnet11" - LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/local/lib/libnet11" - e_magic_file="/usr/share/misc/magic" - ;; - *-*-openbsd5.1) - CFLAGS="${CFLAGS} -D__OpenBSD__ -fgnu89-inline" - CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/local/include/libnet-1.1" - LDFLAGS="${LDFLAGS} -L/usr/local/lib -I/usr/local/lib/libnet-1.1" - e_magic_file="/usr/local/share/misc/magic.mgc" - ;; - *-*-openbsd*) - CFLAGS="${CFLAGS} -D__OpenBSD__ -fgnu89-inline" - CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/local/include/libnet-1.1" - LDFLAGS="${LDFLAGS} -L/usr/local/lib -I/usr/local/lib/libnet-1.1" - e_magic_file="/usr/local/share/file/magic.mgc" - ;; - *darwin*|*Darwin*) - CFLAGS="${CFLAGS} -DOS_DARWIN" - CPPFLAGS="${CPPFLAGS} -I/opt/local/include" - LDFLAGS="${LDFLAGS} -L/opt/local/lib" - ;; - *-*-linux*) - #for now do nothing - ;; - *-*-mingw32*) - CFLAGS="${CFLAGS} -DOS_WIN32" - LDFLAGS="${LDFLAGS} -lws2_32" - WINDOWS_PATH="yes" - ;; - *-*-cygwin) - WINDOWS_PATH="yes" - ;; - *) - AC_MSG_WARN([unsupported OS this may or may not work]) - ;; + *-*-*freebsd*) + CFLAGS="${CFLAGS} -DOS_FREEBSD" + CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/local/include/libnet11" + LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/local/lib/libnet11" + e_magic_file="/usr/share/misc/magic" + ;; + *-*-openbsd5.1) + CFLAGS="${CFLAGS} -D__OpenBSD__ -fgnu89-inline" + CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/local/include/libnet-1.1" + LDFLAGS="${LDFLAGS} -L/usr/local/lib -I/usr/local/lib/libnet-1.1" + e_magic_file="/usr/local/share/misc/magic.mgc" + ;; + *-*-openbsd5.2) + CFLAGS="${CFLAGS} -D__OpenBSD__" + CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/local/include/libnet-1.1" + LDFLAGS="${LDFLAGS} -L/usr/local/lib -I/usr/local/lib/libnet-1.1" + e_magic_file="/usr/local/share/misc/magic.mgc" + ;; + *-*-openbsd*) + CFLAGS="${CFLAGS} -D__OpenBSD__ -fgnu89-inline" + CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/local/include/libnet-1.1" + LDFLAGS="${LDFLAGS} -L/usr/local/lib -I/usr/local/lib/libnet-1.1" + e_magic_file="/usr/local/share/file/magic.mgc" + ;; + *darwin*|*Darwin*) + CFLAGS="${CFLAGS} -DOS_DARWIN" + CPPFLAGS="${CPPFLAGS} -I/opt/local/include" + LDFLAGS="${LDFLAGS} -L/opt/local/lib" + ;; + *-*-linux*) + #for now do nothing + ;; + *-*-mingw32*) + CFLAGS="${CFLAGS} -DOS_WIN32" + LDFLAGS="${LDFLAGS} -lws2_32" + WINDOWS_PATH="yes" + ;; + *-*-cygwin) + WINDOWS_PATH="yes" + ;; + *) + AC_MSG_WARN([unsupported OS this may or may not work]) + ;; esac AC_MSG_RESULT(ok) @@ -641,7 +647,7 @@ AC_INIT(configure.ac) CPPFLAGS="${CPPFLAGS} -I${with_libnet_includes}" libnet_dir="${with_libnet_includes}" else - libnet_dir="/usr/include /usr/local/include /usr/local/include/libnet11 /opt/local/include" + libnet_dir="/usr/include /usr/local/include /usr/local/include/libnet11 /opt/local/include /usr/local/include/libnet-1.1" fi if test "x$with_libnet_libraries" != "xno"; then @@ -820,6 +826,7 @@ AC_INIT(configure.ac) if test "$with_libpcap_libraries" != "no"; then LDFLAGS="${LDFLAGS} -L${with_libpcap_libraries}" fi + AC_CHECK_HEADERS([pcap.h pcap/pcap.h]) LIBPCAP="" AC_CHECK_LIB(pcap, pcap_open_live,, LIBPCAP="no", [-lpthread]) @@ -841,7 +848,12 @@ AC_INIT(configure.ac) TMPLIBS="${LIBS}" AC_CHECK_LIB(pcap, pcap_activate,, LPCAPVTEST="no") if test "$LPCAPVTEST" != "no"; then - CFLAGS="${CFLAGS} `pcap-config --defines` `pcap-config --cflags` -DLIBPCAP_VERSION_MAJOR=1" + AC_PATH_PROG(HAVE_PCAP_CONFIG, pcap-config, "no") + if test "$HAVE_PCAP_CONFIG" = "no"; then + CFLAGS="${CFLAGS} -DLIBPCAP_VERSION_MAJOR=1" + else + CFLAGS="${CFLAGS} `pcap-config --defines` `pcap-config --cflags` -DLIBPCAP_VERSION_MAJOR=1" + fi else CFLAGS="${CFLAGS} -DLIBPCAP_VERSION_MAJOR=0" fi @@ -1001,6 +1013,8 @@ AC_INIT(configure.ac) # Check for libcap-ng + case $host in + *-*-linux*) AC_ARG_WITH(libcap_ng_includes, [ --with-libcap_ng-includes=DIR libcap_ng include directory], [with_libcap-ng_includes="$withval"],[with_libcap_ng_includes=no]) @@ -1038,7 +1052,8 @@ AC_INIT(configure.ac) echo " Suricata will be built without support for dropping privs." echo fi - + ;; + esac # Check for DAG support. AC_ARG_ENABLE(dag, diff --git a/src/log-pcap.c b/src/log-pcap.c index f40fe2b0e0..5733a9046e 100644 --- a/src/log-pcap.c +++ b/src/log-pcap.c @@ -24,12 +24,6 @@ * Pcap packet logging module. */ -#if LIBPCAP_VERSION_MAJOR == 1 -#include -#else -#include -#endif - #include "suricata-common.h" #include "debug.h" #include "detect.h" diff --git a/src/source-pcap-file.c b/src/source-pcap-file.c index be864dd324..69f6914478 100644 --- a/src/source-pcap-file.c +++ b/src/source-pcap-file.c @@ -23,12 +23,6 @@ * File based pcap packet acquisition support */ -#if LIBPCAP_VERSION_MAJOR == 1 -#include -#else -#include -#endif /* LIBPCAP_VERSION_MAJOR */ - #include "suricata-common.h" #include "suricata.h" #include "decode.h" diff --git a/src/source-pcap.c b/src/source-pcap.c index c0e0bec778..acb8b16cc3 100644 --- a/src/source-pcap.c +++ b/src/source-pcap.c @@ -23,12 +23,6 @@ * Live pcap packet acquisition support */ -#if LIBPCAP_VERSION_MAJOR == 1 -#include -#else -#include -#endif - #include "suricata-common.h" #include "suricata.h" #include "decode.h" diff --git a/src/suricata-common.h b/src/suricata-common.h index 445fa44106..09385f1c57 100644 --- a/src/suricata-common.h +++ b/src/suricata-common.h @@ -131,6 +131,14 @@ #include #define BUG_ON(x) assert(!(x)) +#ifdef HAVE_PCAP_H +#include +#endif + +#ifdef HAVE_PCAP_PCAP_H +#include +#endif + /* we need this to stringify the defines which are supplied at compiletime see: http://gcc.gnu.org/onlinedocs/gcc-3.4.1/cpp/Stringification.html#Stringification */ #define xstr(s) str(s) diff --git a/src/threads.c b/src/threads.c index 527c017687..2b2c919d11 100644 --- a/src/threads.c +++ b/src/threads.c @@ -67,7 +67,11 @@ int ThreadMacrosTest02Spinlocks(void) { int r = 0; r |= SCSpinInit(&mut, 0); r |= SCSpinLock(&mut); +#ifndef __OpenBSD__ r |= (SCSpinTrylock(&mut) == EBUSY)? 0 : 1; +#else + r |= (SCSpinTrylock(&mut) == EDEADLK)? 0 : 1; +#endif r |= SCSpinUnlock(&mut); r |= SCSpinDestroy(&mut);