doc/snort_manual.tgz
doc/snort_manual.xml
doc/version.txt
-extra/m4/*.m4
extra/rule.xxd
extra/snort_examples-1.0.tar.gz
install-sh
src/test/suite_list.h
stamp-h1
test-driver
+tools/flatbuffers/fbstreamer
tools/snort2lua/snort2lua
tools/snort2lua/tags
tools/u2boat/u2boat
AM_CONDITIONAL(MAKE_TEXT_DOC, [test "x$have_w3m" = "xyes" -a "x$have_asciidoc" = "xyes"])
#--------------------------------------------------------------------------
-# visibility foo
+# visibility foo (enable it if we can)
#--------------------------------------------------------------------------
-# modified from gnulib/m4/visibility.m4
-AC_DEFUN([CC_VISIBILITY],
-[
- AC_REQUIRE([AC_PROG_CC])
- AC_MSG_CHECKING([for visibility support])
- gl_save_CPPFLAGS="$CPPFLAGS"
-
- AC_CACHE_VAL(gl_cv_cc_visibility, [
- # Add -Werror flag since some compilers, e.g. icc 7.1, don't support it,
- # but only warn about it instead of compilation failing
- CPPFLAGS="$CPPFLAGS -Werror -fvisibility=hidden"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- extern __attribute__((__visibility__("hidden"))) int hiddenvar;
- extern __attribute__((__visibility__("default"))) int exportedvar;
- extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
- extern __attribute__((__visibility__("default"))) int exportedfunc (void);]],
- [[]])],
- [gl_cv_cc_visibility="yes"],
- [gl_cv_cc_visibility="no"])
- ])
- AC_MSG_RESULT([$gl_cv_cc_visibility])
- CPPFLAGS="$gl_save_CPPFLAGS"
- if test "x$gl_cv_cc_visibility" = "xyes"; then
- CPPFLAGS="$CPPFLAGS -fvisibility=hidden"
- AC_DEFINE([HAVE_VISIBILITY],[1],
- [Define if the compiler supports visibility declarations.])
- fi
-])
-CC_VISIBILITY()
+gl_VISIBILITY()
+CPPFLAGS="$CFLAG_VISIBILITY $CPPFLAGS"
#--------------------------------------------------------------------------
# thread-local storage foo
-Makefile.in
+/Makefile.in
/aclocal.m4
/autom4te.cache/
/compile
/depcomp
/install-sh
/ltmain.sh
-/m4/
+/m4/libtool.m4
+/m4/ltoptions.m4
+/m4/ltsugar.m4
+/m4/ltversion.m4
+/m4/lt~obsolete.m4
/missing
-config.h.in
+/config.h.in
LT_INIT
-AX_CXX_COMPILE_STDCXX_11
+AX_CXX_COMPILE_STDCXX_11([noext], [mandatory])
+
+gl_VISIBILITY()
+CPPFLAGS="$CFLAG_VISIBILITY $CPPFLAGS"
PKG_CHECK_MODULES([SNORT3], [snort >= 3])
--- /dev/null
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
+#
+# DESCRIPTION
+#
+# Check for baseline language coverage in the compiler for the specified
+# version of the C++ standard. If necessary, add switches to CXX and
+# CXXCPP to enable support. VERSION may be '11' (for the C++11 standard)
+# or '14' (for the C++14 standard).
+#
+# The second argument, if specified, indicates whether you insist on an
+# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
+# -std=c++11). If neither is specified, you get whatever works, with
+# preference for an extended mode.
+#
+# The third argument, if specified 'mandatory' or if left unspecified,
+# indicates that baseline support for the specified C++ standard is
+# required and that the macro should error out if no mode with that
+# support is found. If specified 'optional', then configuration proceeds
+# regardless, after defining HAVE_CXX${VERSION} if and only if a
+# supporting mode is found.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
+# Copyright (c) 2015 Paul Norman <penorman@mac.com>
+# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 4
+
+dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
+dnl (serial version number 13).
+
+AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
+ m4_if([$1], [11], [],
+ [$1], [14], [],
+ [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])],
+ [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
+ m4_if([$2], [], [],
+ [$2], [ext], [],
+ [$2], [noext], [],
+ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
+ m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
+ [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
+ [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
+ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
+ AC_LANG_PUSH([C++])dnl
+ ac_success=no
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
+ ax_cv_cxx_compile_cxx$1,
+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+ [ax_cv_cxx_compile_cxx$1=yes],
+ [ax_cv_cxx_compile_cxx$1=no])])
+ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
+ ac_success=yes
+ fi
+
+ m4_if([$2], [noext], [], [dnl
+ if test x$ac_success = xno; then
+ for switch in -std=gnu++$1 -std=gnu++0x; do
+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
+ $cachevar,
+ [ac_save_CXX="$CXX"
+ CXX="$CXX $switch"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+ [eval $cachevar=yes],
+ [eval $cachevar=no])
+ CXX="$ac_save_CXX"])
+ if eval test x\$$cachevar = xyes; then
+ CXX="$CXX $switch"
+ if test -n "$CXXCPP" ; then
+ CXXCPP="$CXXCPP $switch"
+ fi
+ ac_success=yes
+ break
+ fi
+ done
+ fi])
+
+ m4_if([$2], [ext], [], [dnl
+ if test x$ac_success = xno; then
+ dnl HP's aCC needs +std=c++11 according to:
+ dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
+ dnl Cray's crayCC needs "-h std=c++11"
+ for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do
+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
+ $cachevar,
+ [ac_save_CXX="$CXX"
+ CXX="$CXX $switch"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+ [eval $cachevar=yes],
+ [eval $cachevar=no])
+ CXX="$ac_save_CXX"])
+ if eval test x\$$cachevar = xyes; then
+ CXX="$CXX $switch"
+ if test -n "$CXXCPP" ; then
+ CXXCPP="$CXXCPP $switch"
+ fi
+ ac_success=yes
+ break
+ fi
+ done
+ fi])
+ AC_LANG_POP([C++])
+ if test x$ax_cxx_compile_cxx$1_required = xtrue; then
+ if test x$ac_success = xno; then
+ AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
+ fi
+ fi
+ if test x$ac_success = xno; then
+ HAVE_CXX$1=0
+ AC_MSG_NOTICE([No compiler with C++$1 support was found])
+ else
+ HAVE_CXX$1=1
+ AC_DEFINE(HAVE_CXX$1,1,
+ [define if the compiler supports basic C++$1 syntax])
+ fi
+ AC_SUBST(HAVE_CXX$1)
+])
+
+
+dnl Test body for checking C++11 support
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
+)
+
+
+dnl Test body for checking C++14 support
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
+)
+
+
+dnl Tests for new features in C++11
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
+
+// If the compiler admits that it is not ready for C++11, why torture it?
+// Hopefully, this will speed up the test.
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 201103L
+
+#error "This is not a C++11 compiler"
+
+#else
+
+namespace cxx11
+{
+
+ namespace test_static_assert
+ {
+
+ template <typename T>
+ struct check
+ {
+ static_assert(sizeof(int) <= sizeof(T), "not big enough");
+ };
+
+ }
+
+ namespace test_final_override
+ {
+
+ struct Base
+ {
+ virtual void f() {}
+ };
+
+ struct Derived : public Base
+ {
+ virtual void f() override {}
+ };
+
+ }
+
+ namespace test_double_right_angle_brackets
+ {
+
+ template < typename T >
+ struct check {};
+
+ typedef check<void> single_type;
+ typedef check<check<void>> double_type;
+ typedef check<check<check<void>>> triple_type;
+ typedef check<check<check<check<void>>>> quadruple_type;
+
+ }
+
+ namespace test_decltype
+ {
+
+ int
+ f()
+ {
+ int a = 1;
+ decltype(a) b = 2;
+ return a + b;
+ }
+
+ }
+
+ namespace test_type_deduction
+ {
+
+ template < typename T1, typename T2 >
+ struct is_same
+ {
+ static const bool value = false;
+ };
+
+ template < typename T >
+ struct is_same<T, T>
+ {
+ static const bool value = true;
+ };
+
+ template < typename T1, typename T2 >
+ auto
+ add(T1 a1, T2 a2) -> decltype(a1 + a2)
+ {
+ return a1 + a2;
+ }
+
+ int
+ test(const int c, volatile int v)
+ {
+ static_assert(is_same<int, decltype(0)>::value == true, "");
+ static_assert(is_same<int, decltype(c)>::value == false, "");
+ static_assert(is_same<int, decltype(v)>::value == false, "");
+ auto ac = c;
+ auto av = v;
+ auto sumi = ac + av + 'x';
+ auto sumf = ac + av + 1.0;
+ static_assert(is_same<int, decltype(ac)>::value == true, "");
+ static_assert(is_same<int, decltype(av)>::value == true, "");
+ static_assert(is_same<int, decltype(sumi)>::value == true, "");
+ static_assert(is_same<int, decltype(sumf)>::value == false, "");
+ static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
+ return (sumf > 0.0) ? sumi : add(c, v);
+ }
+
+ }
+
+ namespace test_noexcept
+ {
+
+ int f() { return 0; }
+ int g() noexcept { return 0; }
+
+ static_assert(noexcept(f()) == false, "");
+ static_assert(noexcept(g()) == true, "");
+
+ }
+
+ namespace test_constexpr
+ {
+
+ template < typename CharT >
+ unsigned long constexpr
+ strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
+ {
+ return *s ? strlen_c_r(s + 1, acc + 1) : acc;
+ }
+
+ template < typename CharT >
+ unsigned long constexpr
+ strlen_c(const CharT *const s) noexcept
+ {
+ return strlen_c_r(s, 0UL);
+ }
+
+ static_assert(strlen_c("") == 0UL, "");
+ static_assert(strlen_c("1") == 1UL, "");
+ static_assert(strlen_c("example") == 7UL, "");
+ static_assert(strlen_c("another\0example") == 7UL, "");
+
+ }
+
+ namespace test_rvalue_references
+ {
+
+ template < int N >
+ struct answer
+ {
+ static constexpr int value = N;
+ };
+
+ answer<1> f(int&) { return answer<1>(); }
+ answer<2> f(const int&) { return answer<2>(); }
+ answer<3> f(int&&) { return answer<3>(); }
+
+ void
+ test()
+ {
+ int i = 0;
+ const int c = 0;
+ static_assert(decltype(f(i))::value == 1, "");
+ static_assert(decltype(f(c))::value == 2, "");
+ static_assert(decltype(f(0))::value == 3, "");
+ }
+
+ }
+
+ namespace test_uniform_initialization
+ {
+
+ struct test
+ {
+ static const int zero {};
+ static const int one {1};
+ };
+
+ static_assert(test::zero == 0, "");
+ static_assert(test::one == 1, "");
+
+ }
+
+ namespace test_lambdas
+ {
+
+ void
+ test1()
+ {
+ auto lambda1 = [](){};
+ auto lambda2 = lambda1;
+ lambda1();
+ lambda2();
+ }
+
+ int
+ test2()
+ {
+ auto a = [](int i, int j){ return i + j; }(1, 2);
+ auto b = []() -> int { return '0'; }();
+ auto c = [=](){ return a + b; }();
+ auto d = [&](){ return c; }();
+ auto e = [a, &b](int x) mutable {
+ const auto identity = [](int y){ return y; };
+ for (auto i = 0; i < a; ++i)
+ a += b--;
+ return x + identity(a + b);
+ }(0);
+ return a + b + c + d + e;
+ }
+
+ int
+ test3()
+ {
+ const auto nullary = [](){ return 0; };
+ const auto unary = [](int x){ return x; };
+ using nullary_t = decltype(nullary);
+ using unary_t = decltype(unary);
+ const auto higher1st = [](nullary_t f){ return f(); };
+ const auto higher2nd = [unary](nullary_t f1){
+ return [unary, f1](unary_t f2){ return f2(unary(f1())); };
+ };
+ return higher1st(nullary) + higher2nd(nullary)(unary);
+ }
+
+ }
+
+ namespace test_variadic_templates
+ {
+
+ template <int...>
+ struct sum;
+
+ template <int N0, int... N1toN>
+ struct sum<N0, N1toN...>
+ {
+ static constexpr auto value = N0 + sum<N1toN...>::value;
+ };
+
+ template <>
+ struct sum<>
+ {
+ static constexpr auto value = 0;
+ };
+
+ static_assert(sum<>::value == 0, "");
+ static_assert(sum<1>::value == 1, "");
+ static_assert(sum<23>::value == 23, "");
+ static_assert(sum<1, 2>::value == 3, "");
+ static_assert(sum<5, 5, 11>::value == 21, "");
+ static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
+
+ }
+
+ // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
+ // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
+ // because of this.
+ namespace test_template_alias_sfinae
+ {
+
+ struct foo {};
+
+ template<typename T>
+ using member = typename T::member_type;
+
+ template<typename T>
+ void func(...) {}
+
+ template<typename T>
+ void func(member<T>*) {}
+
+ void test();
+
+ void test() { func<foo>(0); }
+
+ }
+
+} // namespace cxx11
+
+#endif // __cplusplus >= 201103L
+
+]])
+
+
+dnl Tests for new features in C++14
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
+
+// If the compiler admits that it is not ready for C++14, why torture it?
+// Hopefully, this will speed up the test.
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 201402L
+
+#error "This is not a C++14 compiler"
+
+#else
+
+namespace cxx14
+{
+
+ namespace test_polymorphic_lambdas
+ {
+
+ int
+ test()
+ {
+ const auto lambda = [](auto&&... args){
+ const auto istiny = [](auto x){
+ return (sizeof(x) == 1UL) ? 1 : 0;
+ };
+ const int aretiny[] = { istiny(args)... };
+ return aretiny[0];
+ };
+ return lambda(1, 1L, 1.0f, '1');
+ }
+
+ }
+
+ namespace test_binary_literals
+ {
+
+ constexpr auto ivii = 0b0000000000101010;
+ static_assert(ivii == 42, "wrong value");
+
+ }
+
+ namespace test_generalized_constexpr
+ {
+
+ template < typename CharT >
+ constexpr unsigned long
+ strlen_c(const CharT *const s) noexcept
+ {
+ auto length = 0UL;
+ for (auto p = s; *p; ++p)
+ ++length;
+ return length;
+ }
+
+ static_assert(strlen_c("") == 0UL, "");
+ static_assert(strlen_c("x") == 1UL, "");
+ static_assert(strlen_c("test") == 4UL, "");
+ static_assert(strlen_c("another\0test") == 7UL, "");
+
+ }
+
+ namespace test_lambda_init_capture
+ {
+
+ int
+ test()
+ {
+ auto x = 0;
+ const auto lambda1 = [a = x](int b){ return a + b; };
+ const auto lambda2 = [a = lambda1(x)](){ return a; };
+ return lambda2();
+ }
+
+ }
+
+ namespace test_digit_seperators
+ {
+
+ constexpr auto ten_million = 100'000'000;
+ static_assert(ten_million == 100000000, "");
+
+ }
+
+ namespace test_return_type_deduction
+ {
+
+ auto f(int& x) { return x; }
+ decltype(auto) g(int& x) { return x; }
+
+ template < typename T1, typename T2 >
+ struct is_same
+ {
+ static constexpr auto value = false;
+ };
+
+ template < typename T >
+ struct is_same<T, T>
+ {
+ static constexpr auto value = true;
+ };
+
+ int
+ test()
+ {
+ auto x = 0;
+ static_assert(is_same<int, decltype(f(x))>::value, "");
+ static_assert(is_same<int&, decltype(g(x))>::value, "");
+ return x;
+ }
+
+ }
+
+} // namespace cxx14
+
+#endif // __cplusplus >= 201402L
+
+]])
--- /dev/null
+# ============================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
+# ============================================================================
+#
+# SYNOPSIS
+#
+# AX_CXX_COMPILE_STDCXX_11([ext|noext], [mandatory|optional])
+#
+# DESCRIPTION
+#
+# Check for baseline language coverage in the compiler for the C++11
+# standard; if necessary, add switches to CXX and CXXCPP to enable
+# support.
+#
+# This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX
+# macro with the version set to C++11. The two optional arguments are
+# forwarded literally as the second and third argument respectively.
+# Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for
+# more information. If you want to use this macro, you also need to
+# download the ax_cxx_compile_stdcxx.m4 file.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
+# Copyright (c) 2015 Paul Norman <penorman@mac.com>
+# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 16
+
+include([ax_cxx_compile_stdcxx.m4])
+
+AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [AX_CXX_COMPILE_STDCXX([11], [$1], [$2])])
--- /dev/null
+# visibility.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2005, 2008, 2010-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl Tests whether the compiler supports the command-line option
+dnl -fvisibility=hidden and the function and variable attributes
+dnl __attribute__((__visibility__("hidden"))) and
+dnl __attribute__((__visibility__("default"))).
+dnl Does *not* test for __visibility__("protected") - which has tricky
+dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
+dnl Mac OS X.
+dnl Does *not* test for __visibility__("internal") - which has processor
+dnl dependent semantics.
+dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
+dnl "really only recommended for legacy code".
+dnl Set the variable CFLAG_VISIBILITY.
+dnl Defines and sets the variable HAVE_VISIBILITY.
+
+AC_DEFUN([gl_VISIBILITY],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ CFLAG_VISIBILITY=
+ HAVE_VISIBILITY=0
+ if test -n "$GCC"; then
+ dnl First, check whether -Werror can be added to the command line, or
+ dnl whether it leads to an error because of some other option that the
+ dnl user has put into $CC $CFLAGS $CPPFLAGS.
+ AC_MSG_CHECKING([whether the -Werror option is usable])
+ AC_CACHE_VAL([gl_cv_cc_vis_werror], [
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Werror"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[]], [[]])],
+ [gl_cv_cc_vis_werror=yes],
+ [gl_cv_cc_vis_werror=no])
+ CFLAGS="$gl_save_CFLAGS"])
+ AC_MSG_RESULT([$gl_cv_cc_vis_werror])
+ dnl Now check whether visibility declarations are supported.
+ AC_MSG_CHECKING([for simple visibility declarations])
+ AC_CACHE_VAL([gl_cv_cc_visibility], [
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fvisibility=hidden"
+ dnl We use the option -Werror and a function dummyfunc, because on some
+ dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
+ dnl "visibility attribute not supported in this configuration; ignored"
+ dnl at the first function definition in every compilation unit, and we
+ dnl don't want to use the option in this case.
+ if test $gl_cv_cc_vis_werror = yes; then
+ CFLAGS="$CFLAGS -Werror"
+ fi
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[extern __attribute__((__visibility__("hidden"))) int hiddenvar;
+ extern __attribute__((__visibility__("default"))) int exportedvar;
+ extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
+ extern __attribute__((__visibility__("default"))) int exportedfunc (void);
+ ]],
+ [[]])],
+ [gl_cv_cc_visibility=yes],
+ [gl_cv_cc_visibility=no])
+ CFLAGS="$gl_save_CFLAGS"])
+ AC_MSG_RESULT([$gl_cv_cc_visibility])
+ if test $gl_cv_cc_visibility = yes; then
+ CFLAG_VISIBILITY="-fvisibility=hidden"
+ HAVE_VISIBILITY=1
+ fi
+ fi
+ AC_SUBST([CFLAG_VISIBILITY])
+ AC_SUBST([HAVE_VISIBILITY])
+ AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
+ [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
+])
//--------------------------------------------------------------------------
// cd_eapol.cc author Josh Rosenbaum <jrosenba@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "codecs/codec_module.h"
#include "framework/codec.h"
#include "protocols/eapol.h"
//--------------------------------------------------------------------------
// cd_linux_sll.cc author Josh Rosenbaum <jrosenba@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <sfbpf_dlt.h>
#include "framework/codec.h"
//--------------------------------------------------------------------------
// cd_null.cc author Josh Rosenbaum <jrosenba@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <sfbpf_dlt.h>
#include "framework/codec.h"
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//--------------------------------------------------------------------------
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <net/if.h>
#include <sfbpf_dlt.h>
// cd_pim.cc author Josh Rosenbaum <jrosenba@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "framework/codec.h"
#include "codecs/codec_module.h"
//--------------------------------------------------------------------------
// cd_ppp.cc author Josh Rosenbaum <jrosenba@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <sfbpf_dlt.h>
#include "framework/codec.h"
//--------------------------------------------------------------------------
// cd_raw4.cc author Josh Rosenbaum <jrosenba@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <sfbpf_dlt.h>
#include "framework/codec.h"
//--------------------------------------------------------------------------
// cd_raw6.cc author Josh Rosenbaum <jrosenba@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <sfbpf_dlt.h>
#include "framework/codec.h"
//--------------------------------------------------------------------------
// token_ring.h author Josh Rosenbaum <jrosenba@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <sfbpf_dlt.h>
#include "codecs/codec_module.h"
//--------------------------------------------------------------------------
// cd_wlan.cc author Josh Rosenbaum <jrosenba@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <sfbpf_dlt.h>
#include "codecs/codec_module.h"
*/
/* daq_socket.c author Russ Combs <rucombs@cisco.com> */
-#include "daqs/daq_user.h"
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <errno.h>
+#include <netinet/in.h>
+#include <netinet/in_systm.h>
+#include <netinet/ip.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
-
+#include <sys/socket.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/unistd.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-
#include <daq_api.h>
#include <sfbpf_dlt.h>
+#include <daqs/daq_user.h>
+
#define DAQ_MOD_VERSION 0
#define DAQ_NAME "socket"
#define DAQ_TYPE (DAQ_TYPE_INTF_CAPABLE | DAQ_TYPE_INLINE_CAPABLE | DAQ_TYPE_MULTI_INSTANCE)
//--------------------------------------------------------------------------
// data_log.cc author Russ Combs <rcombs@sourcefire.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "flow/flow.h"
#include "framework/data_bus.h"
#include "framework/inspector.h"
//--------------------------------------------------------------------------
// dpx.cc author Russ Combs <rcombs@sourcefire.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "events/event_queue.h"
#include "framework/inspector.h"
#include "framework/module.h"
** - 3.2.03: Initial development. DJR
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_ad.h"
#include "hi_events.h"
** - 2.4.05: Added tab_uri_delimiter config option. AJM.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_client.h"
#include "protocols/packet.h"
// this file was split from hi_client.cc; look there for the real
// culprits ;)
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "utils/util_cstring.h"
#include "hi_events.h"
** - Initial development. DJR
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_client_norm.h"
#include "main/snort_debug.h"
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//--------------------------------------------------------------------------
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_cmd_lookup.h"
/*
//--------------------------------------------------------------------------
// hi_events.cc author Russ Combs <rucombs@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_events.h"
#include <assert.h>
** - 2.4.05: Added tab_uri_delimiter config option. AJM.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_main.h"
#include "detection/detect.h"
** - 3.2.03: Initial development. DJR
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_mi.h"
#include "protocols/packet.h"
// hi_module.cc author Russ Combs <rucombs@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_module.h"
#include "decompress/file_decomp.h"
** - Initial development. DJR
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_norm.h"
#include "hi_client_norm.h"
** - Initial development. DJR
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_server.h"
#include "protocols/packet.h"
** - Initial development. DJR
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_server_norm.h"
#include "search_engines/search_tool.h"
** - 2.25.03: Initial Development. DJR
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_si.h"
#include "protocols/packet.h"
// * Range, Content-Range, and multipart
//--------------------------------------------------------------------
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_stream_splitter.h"
#include "events/event_queue.h"
** - 2.4.05: Added tab_uri_delimiter config option. AJM.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_ui_config.h"
#include "utils/util.h"
** - Initial development. DJR
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "hi_ui_iis_unicode_map.h"
#include <sstream>
** - 2.10.03: Initial Development. DJR
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
// FIXIT-L all snort includes should use <form> instead of "form"
#include "log/messages.h"
#include "file_api/file_service.h"
//--------------------------------------------------------------------------
// ips_http.cc author Russ Combs <rucombs@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <array>
#include "framework/cursor.h"
//--------------------------------------------------------------------------
// ips_http_header.cc author Russ Combs <rucombs@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "framework/cursor.h"
#include "detection/detection_defines.h"
#include "framework/ips_option.h"
// ips_pkt_num.cc author Russ Combs <rucombs@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "detection/detection_defines.h"
#include "framework/decode_data.h"
#include "framework/ips_option.h"
// ips_urg.cc author Russ Combs <rucombs@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "detection/detection_defines.h"
#include "framework/ips_option.h"
#include "framework/module.h"
// alert_ex.cc author Russ Combs <rucombs@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <iostream>
#include "detection/signature.h"
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//--------------------------------------------------------------------------
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <sys/un.h>
#include "detection/signature.h"
* alerting, they are completely separate output facilities within Snort.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "framework/logger.h"
#include "framework/module.h"
*/
// lowmem.cc author Russ Combs <rucombs@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "log/messages.h"
#include "framework/mpse.h"
* Keyword-Search: searches the input text for one of multiple keywords,
* and supports case sensitivite and case insensitive patterns.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
#include "sfksearch.h"
//--------------------------------------------------------------------------
// trie_api.cc author Russ Combs <rucombs@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "framework/base_api.h"
#include "main/snort_types.h"
//--------------------------------------------------------------------------
// sid_18758.cc author Russ Combs <rucombs@cisco.com>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "sid_18758.h"
#include "detection/detection_defines.h"
--- /dev/null
+# visibility.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2005, 2008, 2010-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl Tests whether the compiler supports the command-line option
+dnl -fvisibility=hidden and the function and variable attributes
+dnl __attribute__((__visibility__("hidden"))) and
+dnl __attribute__((__visibility__("default"))).
+dnl Does *not* test for __visibility__("protected") - which has tricky
+dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
+dnl Mac OS X.
+dnl Does *not* test for __visibility__("internal") - which has processor
+dnl dependent semantics.
+dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
+dnl "really only recommended for legacy code".
+dnl Set the variable CFLAG_VISIBILITY.
+dnl Defines and sets the variable HAVE_VISIBILITY.
+
+AC_DEFUN([gl_VISIBILITY],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ CFLAG_VISIBILITY=
+ HAVE_VISIBILITY=0
+ if test -n "$GCC"; then
+ dnl First, check whether -Werror can be added to the command line, or
+ dnl whether it leads to an error because of some other option that the
+ dnl user has put into $CC $CFLAGS $CPPFLAGS.
+ AC_MSG_CHECKING([whether the -Werror option is usable])
+ AC_CACHE_VAL([gl_cv_cc_vis_werror], [
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Werror"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[]], [[]])],
+ [gl_cv_cc_vis_werror=yes],
+ [gl_cv_cc_vis_werror=no])
+ CFLAGS="$gl_save_CFLAGS"])
+ AC_MSG_RESULT([$gl_cv_cc_vis_werror])
+ dnl Now check whether visibility declarations are supported.
+ AC_MSG_CHECKING([for simple visibility declarations])
+ AC_CACHE_VAL([gl_cv_cc_visibility], [
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fvisibility=hidden"
+ dnl We use the option -Werror and a function dummyfunc, because on some
+ dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
+ dnl "visibility attribute not supported in this configuration; ignored"
+ dnl at the first function definition in every compilation unit, and we
+ dnl don't want to use the option in this case.
+ if test $gl_cv_cc_vis_werror = yes; then
+ CFLAGS="$CFLAGS -Werror"
+ fi
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[extern __attribute__((__visibility__("hidden"))) int hiddenvar;
+ extern __attribute__((__visibility__("default"))) int exportedvar;
+ extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
+ extern __attribute__((__visibility__("default"))) int exportedfunc (void);
+ ]],
+ [[]])],
+ [gl_cv_cc_visibility=yes],
+ [gl_cv_cc_visibility=no])
+ CFLAGS="$gl_save_CFLAGS"])
+ AC_MSG_RESULT([$gl_cv_cc_visibility])
+ if test $gl_cv_cc_visibility = yes; then
+ CFLAG_VISIBILITY="-fvisibility=hidden"
+ HAVE_VISIBILITY=1
+ fi
+ fi
+ AC_SUBST([CFLAG_VISIBILITY])
+ AC_SUBST([HAVE_VISIBILITY])
+ AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
+ [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
+])
set (LOGGER_SOURCES
alert_luajit.cc
+ alert_sf_socket.cc
log_codecs.cc
loggers.cc
loggers.h
unified2.cc
)
-if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
- set ( LOGGER_SOURCES
- ${LOGGER_SOURCES}
- alert_sf_socket.cc
- )
-endif()
-
-
if (STATIC_LOGGERS)
add_library ( loggers STATIC
${LOGGER_SOURCES}
noinst_LIBRARIES = libloggers.a
libloggers_a_SOURCES = \
alert_luajit.cc \
+alert_sf_socket.cc \
log_codecs.cc \
loggers.cc \
loggers.h
log_pcap.cc \
unified2.cc
-if LINUX
-libloggers_a_SOURCES += alert_sf_socket.cc
-endif
-
if STATIC_LOGGERS
libloggers_a_SOURCES += $(plugin_list)
#include "config.h"
#endif
-#ifdef __linux__
-
#include <sys/socket.h>
#include <sys/un.h>
sf_sock_ctor,
sf_sock_dtor
};
-#endif /* __linux__ */
const BaseApi* alert_sf_socket[] =
{
-#ifdef __linux__
&sf_sock_api.base,
-#endif
nullptr
};
// to ensure PacketManager::log_protocols() is built into Snort++
extern const BaseApi* log_codecs[];
-#ifdef __linux__
extern const BaseApi* alert_sf_socket[];
-#endif
#ifdef STATIC_LOGGERS
extern const BaseApi* alert_csv[];
{
// loggers
PluginManager::load_plugins(log_codecs);
-#ifdef __linux__
PluginManager::load_plugins(alert_sf_socket);
-#endif
#ifdef STATIC_LOGGERS
// alerters
bool done = false;
FILE* file;
-void help()
+static void help()
{
cout << "Flatbuffers Multirecord Streamer for Snort 3\n\n"
<< "Records are output in pairs of YAML objects, representing\n"
<< "-t: Tail mode for reading live files\n";
}
-void error(string e)
+static void error(string e)
{
if( done )
return;
exit(-1);
}
-bool tail_read(void* buf, size_t size)
+static bool tail_read(void* buf, size_t size)
{
bool tail = opt_flags & OPT_TAIL;
return true;
}
-uint8_t* read(size_t size, const char* on_error = nullptr)
+static uint8_t* read(size_t size, const char* on_error = nullptr)
{
uint8_t* ret = (uint8_t*) malloc(size);
return ret;
}
-void sigint_handler(int)
+static void sigint_handler(int)
{ done = true; }
-bool handle_options(int argc, char* argv[])
+static bool handle_options(int argc, char* argv[])
{
int opt;
while( (opt = getopt(argc, argv, "i:b:a:it")) != -1 )
return true;
}
-const reflection::Schema* load_schema(flatbuffers::Parser& parser)
+static const reflection::Schema* load_schema(flatbuffers::Parser& parser)
{
auto schema_size = ntohl(read<uint32_t>("Unable to read schema size"));
auto schema = read(schema_size, "Unable to read schema");
inline bool is_before_a_stamp(uint64_t timestamp)
{ return (opt_flags & OPT_AFTER) && timestamp < a_stamp; }
-uint8_t* scan_record(bool skip, uint32_t& size)
+static uint8_t* scan_record(bool skip, uint32_t& size)
{
size = ntohl(read<uint32_t>("Unable to read record size"));