ongrep

A cleaned up fork of ngrep for OpenBSD
git clone git://git.sgregoratto.me/ongrep
Log | Files | Refs | README | LICENSE

commit 35527b42bca51985385a3e8a005abbfd8faaf6dd
parent eb9a5e515f2f6a2974ccd5d321c99354f7128d3b
Author: Jordan Ritter <jpr5@darkridge.com>
Date:   Thu,  7 Sep 2017 13:33:48 -0700

Allow VLAN hack to be disabled at compile

Diffstat:
Mconfig.h.in | 1+
Mconfigure | 30++++++++++++++++++++++++++++++
Mconfigure.in | 19+++++++++++++++++++
Mngrep.c | 2+-
4 files changed, 51 insertions(+), 1 deletion(-)

diff --git a/config.h.in b/config.h.in @@ -8,6 +8,7 @@ #define USE_PCRE @USE_PCRE@ #define USE_IPv6 @USE_IPv6@ #define USE_TCPKILL @USE_TCPKILL@ +#define USE_VLAN_HACK @USE_VLAN_HACK@ #define HAVE_DLT_RAW @HAVE_DLT_RAW@ #define HAVE_DLT_PFLOG @HAVE_DLT_PFLOG@ diff --git a/configure b/configure @@ -666,6 +666,7 @@ enable_ipv6 enable_pcap_restart enable_pcre enable_tcpkill +enable_vlan_hack with_pcap_includes ' ac_precious_vars='build_alias @@ -1305,6 +1306,7 @@ Optional Features: --enable-pcap-restart enable BPF lexer restart bugfix for older versions of PCAP (default off) --enable-pcre use PCRE instead of GNU regex (default GNU) --enable-tcpkill enable connection killing support (default off) + --disable-vlan-hack disable automatic inclusion of VLAN frames (default on) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -3514,6 +3516,21 @@ else fi +# Check whether --enable-vlan-hack was given. +if test "${enable_vlan_hack+set}" = set; then : + enableval=$enable_vlan_hack; use_vlan_hack="$enableval" +else + use_vlan_hack="yes" +fi + + +if test $use_vlan_hack = yes; then + USE_VLAN_HACK="1" +else + USE_VLAN_HACK="0" +fi + + # Check whether --with-pcap-includes was given. if test "${with_pcap_includes+set}" = set; then : @@ -4075,6 +4092,11 @@ cat >>confdefs.h <<_ACEOF _ACEOF +cat >>confdefs.h <<_ACEOF +#define USE_VLAN_HACK $USE_VLAN_HACK +_ACEOF + + cat >>confdefs.h <<_ACEOF #define USE_DROPPRIVS $USE_DROPPRIVS @@ -4170,6 +4192,14 @@ else $as_echo "CONFIG: tcpkill feature disabled" >&6; } fi +if test "$USE_VLAN_HACK" = "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: automatically including VLAN frames" >&5 +$as_echo "CONFIG: automatically including VLAN frames" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: not automatically including VLAN frames" >&5 +$as_echo "CONFIG: not automatically including VLAN frames" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } diff --git a/configure.in b/configure.in @@ -189,6 +189,18 @@ else fi +AC_ARG_ENABLE(vlan-hack, +[ --disable-vlan-hack disable automatic inclusion of VLAN frames (default on)], +[use_vlan_hack="$enableval"], +[use_vlan_hack="yes"]) + +if test $use_vlan_hack = yes; then + USE_VLAN_HACK="1" +else + USE_VLAN_HACK="0" +fi + + AC_ARG_WITH(pcap-includes, [ --with-pcap-includes=dir specify the pcap include directory], [PCAP_DIR=$withval], @@ -467,6 +479,7 @@ AC_DEFINE_UNQUOTED(PCAP_RESTART_FUNC, $PCAP_RESTART_FUNC, [routi AC_DEFINE_UNQUOTED(USE_PCRE, $USE_PCRE, [whether to use PCRE (default GNU Regex)]) AC_DEFINE_UNQUOTED(USE_IPv6, $USE_IPv6, [whether to use IPv6 (default off)]) AC_DEFINE_UNQUOTED(USE_TCPKILL, $USE_TCPKILL, [whether to enable tcpkill functionality (default off)]) +AC_DEFINE_UNQUOTED(USE_VLAN_HACK, $USE_VLAN_HACK, [whether to automatically include VLAN frames (default on)]) AC_DEFINE_UNQUOTED(USE_DROPPRIVS, $USE_DROPPRIVS, [whether to use privileges dropping (default yes)]) AC_DEFINE_UNQUOTED(DROPPRIVS_USER, "$DROPPRIVS_USER", [pseudo-user for running ngrep (default "nobody")]) @@ -523,6 +536,12 @@ else AC_MSG_RESULT(CONFIG: tcpkill feature disabled) fi +if test "$USE_VLAN_HACK" = "1"; then + AC_MSG_RESULT(CONFIG: automatically including VLAN frames) +else + AC_MSG_RESULT(CONFIG: NOT automatically including VLAN frames) +fi + dnl dnl And we're done. ALL YOUR BASE. Don't forget. dnl diff --git a/ngrep.c b/ngrep.c @@ -159,7 +159,7 @@ char *filter = NULL, *filter_file = NULL; char pc_err[PCAP_ERRBUF_SIZE]; uint8_t link_offset; uint8_t radiotap_present = 0; -uint8_t include_vlan = 1; +uint8_t include_vlan = USE_VLAN_HACK; pcap_t *pd = NULL, *pd_dumppcap = NULL; pcap_dumper_t *pd_dump = NULL;