Import libpcap 1.10.4

Reviewed by:	emaste
Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Joseph Mingrone 2023-05-04 11:52:25 -03:00
parent 35af88c963
commit 6b96668d5b
No known key found for this signature in database
GPG Key ID: 36A40C83B0D6EF9E
32 changed files with 252 additions and 176 deletions

38
CHANGES
View File

@ -1,3 +1,17 @@
Friday, April 7, 2023 / The Tcpdump Group
Summary for 1.10.4 libpcap release
Source code:
Fix spaces before tabs in indentation.
rpcap:
Fix name of launchd service.
Documentation:
Document use of rpcapd with systemd, launchd, inetd, and xinetd.
Building and testing:
Require at least pkg-config 0.17.0, as we use --static.
Get rid of the remains of gnuc.h.
Require at least autoconf 2.69.
Update config.{guess,sub}, timestamps 2023-01-01,2023-01-21.
Thursday, January 12, 2023 / The Tcpdump Group Thursday, January 12, 2023 / The Tcpdump Group
Summary for 1.10.3 libpcap release Summary for 1.10.3 libpcap release
Source code: Source code:
@ -1010,7 +1024,7 @@ Tue. September 19, 2006. ken@xelerance.com. Summary for 0.9.5 libpcap release
Add support to build libpcap.lib and wpcap.dll under Cygnus and Add support to build libpcap.lib and wpcap.dll under Cygnus and
MingW32. MingW32.
Mon. September 5, 2005. ken@xelerance.com. Summary for 0.9.4 libpcap release Mon. September 5, 2005. ken@xelerance.com. Summary for 0.9.4 libpcap release
Support for radiotap on Linux (Mike Kershaw) Support for radiotap on Linux (Mike Kershaw)
Fixes for HP-UX Fixes for HP-UX
@ -1021,7 +1035,7 @@ Mon. September 5, 2005. ken@xelerance.com. Summary for 0.9.4 libpcap release
parts of the filter expression to look at the PPP headers and parts of the filter expression to look at the PPP headers and
headers in the PPP payload headers in the PPP payload
Tue. July 5, 2005. ken@xelerance.com. Summary for 0.9.3 libpcap release Tue. July 5, 2005. ken@xelerance.com. Summary for 0.9.3 libpcap release
Fixes for compiling on nearly every platform, Fixes for compiling on nearly every platform,
including improved 64bit support including improved 64bit support
@ -1060,16 +1074,16 @@ Wed. November 12, 2003. mcr@sandelman.ottawa.on.ca. Summary for 0.8 release
Tuesday, February 25, 2003. fenner@research.att.com. 0.7.2 release Tuesday, February 25, 2003. fenner@research.att.com. 0.7.2 release
Support link types that use 802.2 always, never, and sometimes. Support link types that use 802.2 always, never, and sometimes.
Don't decrease the size of the BPF buffer from the default. Don't decrease the size of the BPF buffer from the default.
Support frame relay. Support frame relay.
Handle 32-bit timestamps in DLPI, and pass the right buffer size. Handle 32-bit timestamps in DLPI, and pass the right buffer size.
Handle Linux systems with modern kernel but without Handle Linux systems with modern kernel but without
SOL_PACKET in the userland headers. SOL_PACKET in the userland headers.
Linux support for ARPHRD_RAWHDLC. Linux support for ARPHRD_RAWHDLC.
Handle 32-bit timestamps in snoop. Handle 32-bit timestamps in snoop.
Support eg (Octane/O2xxx/O3xxx Gigabit) devices. Support eg (Octane/O2xxx/O3xxx Gigabit) devices.
Add new reserved DLT types. Add new reserved DLT types.
Monday October 23, 2001. mcr@sandelman.ottawa.on.ca. Summary for 0.7 release Monday October 23, 2001. mcr@sandelman.ottawa.on.ca. Summary for 0.7 release

View File

@ -1,5 +1,5 @@
# Copyright (c) 1993, 1994, 1995, 1996 # Copyright (c) 1993, 1994, 1995, 1996
# The Regents of the University of California. All rights reserved. # The Regents of the University of California. All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that: (1) source code distributions # modification, are permitted provided that: (1) source code distributions
@ -810,7 +810,7 @@ clean:
distclean: clean distclean: clean
rm -f Makefile grammar.y config.cache config.log config.status \ rm -f Makefile grammar.y config.cache config.log config.status \
config.h config.h.in~ configure~ configure.ac~ \ config.h config.h.in~ configure~ configure.ac~ \
gnuc.h net os-proto.h libpcap.pc pcap-config stamp-h stamp-h.in net os-proto.h libpcap.pc pcap-config stamp-h stamp-h.in
rm -f $(MAN3PCAP_EXPAND:.in=) $(MANFILE:.in=) $(MANMISC:.in=) rm -f $(MAN3PCAP_EXPAND:.in=) $(MANFILE:.in=) $(MANMISC:.in=)
rm -rf autom4te.cache rm -rf autom4te.cache
(cd rpcapd; $(MAKE) distclean) (cd rpcapd; $(MAKE) distclean)

View File

@ -24,7 +24,7 @@ to ease in porting and to alleviate the need for several
system-dependent packet capture modules in each application. system-dependent packet capture modules in each application.
```text ```text
formerly from Lawrence Berkeley National Laboratory formerly from Lawrence Berkeley National Laboratory
Network Research Group <libpcap@ee.lbl.gov> Network Research Group <libpcap@ee.lbl.gov>
ftp://ftp.ee.lbl.gov/old/libpcap-0.4a7.tar.Z ftp://ftp.ee.lbl.gov/old/libpcap-0.4a7.tar.Z
``` ```

View File

@ -1 +1 @@
1.10.3 1.10.4

13
aclocal.m4 vendored
View File

@ -1103,9 +1103,8 @@ dnl Since: 0.16
dnl dnl
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
dnl first found in the path. Checks that the version of pkg-config found dnl first found in the path. Checks that the version of pkg-config found
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.17.0 is
dnl used since that's the first version where most current features of dnl used since that's the first version where --static was supported.
dnl pkg-config existed.
AC_DEFUN([PKG_PROG_PKG_CONFIG], AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
@ -1118,7 +1117,7 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
fi fi
if test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG"; then
_pkg_min_version=m4_default([$1], [0.9.0]) _pkg_min_version=m4_default([$1], [0.17.0])
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
@ -1205,8 +1204,8 @@ See the pkg-config man page for more details.])
# #
# That failed - report an error. # That failed - report an error.
# #
AC_MSG_RESULT([error]) AC_MSG_RESULT([error])
_PKG_SHORT_ERRORS_SUPPORTED _PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
else else
@ -1229,7 +1228,7 @@ _PKG_TEXT])[]dnl
# #
# We don't have pkg-config, so it didn't work. # We don't have pkg-config, so it didn't work.
# #
AC_MSG_RESULT([not found (pkg-config not found)]) AC_MSG_RESULT([not found (pkg-config not found)])
else else
# #
# We found the package. # We found the package.

12
config.guess vendored
View File

@ -1,10 +1,10 @@
#! /bin/sh #! /bin/sh
# Attempt to guess a canonical system name. # Attempt to guess a canonical system name.
# Copyright 1992-2022 Free Software Foundation, Inc. # Copyright 1992-2023 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale # shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2022-08-01' timestamp='2023-01-01'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
@ -60,7 +60,7 @@ version="\
GNU config.guess ($timestamp) GNU config.guess ($timestamp)
Originally written by Per Bothner. Originally written by Per Bothner.
Copyright 1992-2022 Free Software Foundation, Inc. Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@ -966,6 +966,12 @@ EOF
GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
;; ;;
x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
;;
*:[Mm]anagarm:*:*)
GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
;;
*:Minix:*:*) *:Minix:*:*)
GUESS=$UNAME_MACHINE-unknown-minix GUESS=$UNAME_MACHINE-unknown-minix
;; ;;

33
config.sub vendored
View File

@ -1,10 +1,10 @@
#! /bin/sh #! /bin/sh
# Configuration validation subroutine script. # Configuration validation subroutine script.
# Copyright 1992-2022 Free Software Foundation, Inc. # Copyright 1992-2023 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale # shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2022-08-01' timestamp='2023-01-21'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\ version="\
GNU config.sub ($timestamp) GNU config.sub ($timestamp)
Copyright 1992-2022 Free Software Foundation, Inc. Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@ -145,7 +145,7 @@ case $1 in
nto-qnx* | linux-* | uclinux-uclibc* \ nto-qnx* | linux-* | uclinux-uclibc* \
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
| storm-chaos* | os2-emx* | rtmk-nova*) | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
basic_machine=$field1 basic_machine=$field1
basic_os=$maybe_os basic_os=$maybe_os
;; ;;
@ -1075,7 +1075,7 @@ case $cpu-$vendor in
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
cpu=i586 cpu=i586
;; ;;
pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
cpu=i686 cpu=i686
;; ;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
@ -1341,6 +1341,10 @@ EOF
kernel=linux kernel=linux
os=`echo "$basic_os" | sed -e 's|linux|gnu|'` os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
;; ;;
managarm*)
kernel=managarm
os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
;;
*) *)
kernel= kernel=
os=$basic_os os=$basic_os
@ -1754,7 +1758,7 @@ case $os in
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
| fiwix* ) | fiwix* | mlibc* )
;; ;;
# This one is extra strict with allowed versions # This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*) sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@ -1762,6 +1766,9 @@ case $os in
;; ;;
none) none)
;; ;;
kernel* )
# Restricted further below
;;
*) *)
echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
exit 1 exit 1
@ -1772,16 +1779,26 @@ esac
# (given a valid OS), if there is a kernel. # (given a valid OS), if there is a kernel.
case $kernel-$os in case $kernel-$os in
linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
| linux-musl* | linux-relibc* | linux-uclibc* ) | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
;; ;;
uclinux-uclibc* ) uclinux-uclibc* )
;; ;;
-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) managarm-mlibc* | managarm-kernel* )
;;
-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
# These are just libc implementations, not actual OSes, and thus # These are just libc implementations, not actual OSes, and thus
# require a kernel. # require a kernel.
echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
exit 1 exit 1
;; ;;
-kernel* )
echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
exit 1
;;
*-kernel* )
echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
exit 1
;;
kfreebsd*-gnu* | kopensolaris*-gnu*) kfreebsd*-gnu* | kopensolaris*-gnu*)
;; ;;
vxworks-simlinux | vxworks-simwindows | vxworks-spe) vxworks-simlinux | vxworks-simwindows | vxworks-spe)

64
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for pcap 1.10.3. # Generated by GNU Autoconf 2.69 for pcap 1.10.4.
# #
# #
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@ -577,8 +577,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='pcap' PACKAGE_NAME='pcap'
PACKAGE_TARNAME='pcap' PACKAGE_TARNAME='pcap'
PACKAGE_VERSION='1.10.3' PACKAGE_VERSION='1.10.4'
PACKAGE_STRING='pcap 1.10.3' PACKAGE_STRING='pcap 1.10.4'
PACKAGE_BUGREPORT='' PACKAGE_BUGREPORT=''
PACKAGE_URL='' PACKAGE_URL=''
@ -1354,7 +1354,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures pcap 1.10.3 to adapt to many kinds of systems. \`configure' configures pcap 1.10.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1420,7 +1420,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of pcap 1.10.3:";; short | recursive ) echo "Configuration of pcap 1.10.4:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1584,7 +1584,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
pcap configure 1.10.3 pcap configure 1.10.4
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -2506,7 +2506,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by pcap $as_me 1.10.3, which was It was created by pcap $as_me 1.10.4, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -6110,7 +6110,7 @@ main(void)
_ACEOF _ACEOF
if ac_fn_c_try_compile "$LINENO"; then : if ac_fn_c_try_compile "$LINENO"; then :
# GNU-style # GNU-style
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; } $as_echo "yes" >&6; }
@ -7343,9 +7343,9 @@ done
V_PCAP=linux V_PCAP=linux
VALGRINDTEST_SRC=valgrindtest.c VALGRINDTEST_SRC=valgrindtest.c
elif test "$ac_cv_header_net_pfilt_h" = yes; then elif test "$ac_cv_header_net_pfilt_h" = yes; then
# #
# DEC OSF/1, Digital UNIX, Tru64 UNIX # DEC OSF/1, Digital UNIX, Tru64 UNIX
# #
V_PCAP=pf V_PCAP=pf
elif test "$ac_cv_header_net_enet_h" = yes; then elif test "$ac_cv_header_net_enet_h" = yes; then
# #
@ -7505,7 +7505,7 @@ fi
fi fi
if test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG"; then
_pkg_min_version=0.9.0 _pkg_min_version=0.17.0
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
@ -7784,14 +7784,14 @@ enet)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-enet.c" PLATFORM_C_SRC="pcap-enet.c"
;; ;;
haiku) haiku)
# #
# Capture module # Capture module
# #
PLATFORM_CXX_SRC="pcap-haiku.cpp" PLATFORM_CXX_SRC="pcap-haiku.cpp"
# #
# Just for the sake of it. # Just for the sake of it.
@ -7815,7 +7815,7 @@ linux)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-linux.c" PLATFORM_C_SRC="pcap-linux.c"
# #
# Do we have the wireless extensions? # Do we have the wireless extensions?
@ -7938,7 +7938,7 @@ fi
# #
# That failed - report an error. # That failed - report an error.
# #
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5
$as_echo "error" >&6; } $as_echo "error" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -7969,7 +7969,7 @@ See the pkg-config man page for more details." "$LINENO" 5
# #
# We don't have pkg-config, so it didn't work. # We don't have pkg-config, so it didn't work.
# #
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found (pkg-config not found)" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found (pkg-config not found)" >&5
$as_echo "not found (pkg-config not found)" >&6; } $as_echo "not found (pkg-config not found)" >&6; }
else else
# #
@ -8115,7 +8115,7 @@ bpf)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-bpf.c" PLATFORM_C_SRC="pcap-bpf.c"
# #
# Check whether we have the *BSD-style ioctls. # Check whether we have the *BSD-style ioctls.
@ -8160,21 +8160,21 @@ pf)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-pf.c" PLATFORM_C_SRC="pcap-pf.c"
;; ;;
snit) snit)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-snit.c" PLATFORM_C_SRC="pcap-snit.c"
;; ;;
snoop) snoop)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-snoop.c" PLATFORM_C_SRC="pcap-snoop.c"
;; ;;
dag) dag)
@ -8221,7 +8221,7 @@ null)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-null.c" PLATFORM_C_SRC="pcap-null.c"
;; ;;
*) *)
@ -9387,7 +9387,7 @@ fi
# #
# That failed - report an error. # That failed - report an error.
# #
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5
$as_echo "error" >&6; } $as_echo "error" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -9418,7 +9418,7 @@ See the pkg-config man page for more details." "$LINENO" 5
# #
# We don't have pkg-config, so it didn't work. # We don't have pkg-config, so it didn't work.
# #
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found (pkg-config not found)" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found (pkg-config not found)" >&5
$as_echo "not found (pkg-config not found)" >&6; } $as_echo "not found (pkg-config not found)" >&6; }
else else
# #
@ -12879,7 +12879,7 @@ fi
# #
# That failed - report an error. # That failed - report an error.
# #
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5
$as_echo "error" >&6; } $as_echo "error" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -12910,7 +12910,7 @@ See the pkg-config man page for more details." "$LINENO" 5
# #
# We don't have pkg-config, so it didn't work. # We don't have pkg-config, so it didn't work.
# #
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found (pkg-config not found)" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found (pkg-config not found)" >&5
$as_echo "not found (pkg-config not found)" >&6; } $as_echo "not found (pkg-config not found)" >&6; }
else else
# #
@ -13350,7 +13350,7 @@ fi
# #
# That failed - report an error. # That failed - report an error.
# #
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5
$as_echo "error" >&6; } $as_echo "error" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -13375,7 +13375,7 @@ fi
# #
# We don't have pkg-config, so it didn't work. # We don't have pkg-config, so it didn't work.
# #
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found (pkg-config not found)" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found (pkg-config not found)" >&5
$as_echo "not found (pkg-config not found)" >&6; } $as_echo "not found (pkg-config not found)" >&6; }
else else
# #
@ -13549,7 +13549,7 @@ fi
# #
# That failed - report an error. # That failed - report an error.
# #
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5
$as_echo "error" >&6; } $as_echo "error" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -13580,7 +13580,7 @@ See the pkg-config man page for more details." "$LINENO" 5
# #
# We don't have pkg-config, so it didn't work. # We don't have pkg-config, so it didn't work.
# #
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found (pkg-config not found)" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found (pkg-config not found)" >&5
$as_echo "not found (pkg-config not found)" >&6; } $as_echo "not found (pkg-config not found)" >&6; }
else else
# #
@ -14428,7 +14428,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by pcap $as_me 1.10.3, which was This file was extended by pcap $as_me 1.10.4, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -14494,7 +14494,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
pcap config.status 1.10.3 pcap config.status 1.10.4
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View File

@ -14,7 +14,7 @@ dnl
# config.sub. # config.sub.
# #
AC_PREREQ(2.64) AC_PREREQ(2.69)
AC_INIT(pcap, m4_esyscmd_s([cat VERSION])) AC_INIT(pcap, m4_esyscmd_s([cat VERSION]))
AC_CONFIG_SRCDIR(pcap.c) AC_CONFIG_SRCDIR(pcap.c)
@ -220,7 +220,7 @@ main(void)
) )
], ],
[ [
# GNU-style # GNU-style
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GNU_STRERROR_R,, AC_DEFINE(HAVE_GNU_STRERROR_R,,
[Define to 1 if you have a GNU-style `strerror_r' function.]) [Define to 1 if you have a GNU-style `strerror_r' function.])
@ -783,9 +783,9 @@ else
V_PCAP=linux V_PCAP=linux
VALGRINDTEST_SRC=valgrindtest.c VALGRINDTEST_SRC=valgrindtest.c
elif test "$ac_cv_header_net_pfilt_h" = yes; then elif test "$ac_cv_header_net_pfilt_h" = yes; then
# #
# DEC OSF/1, Digital UNIX, Tru64 UNIX # DEC OSF/1, Digital UNIX, Tru64 UNIX
# #
V_PCAP=pf V_PCAP=pf
elif test "$ac_cv_header_net_enet_h" = yes; then elif test "$ac_cv_header_net_enet_h" = yes; then
# #
@ -982,14 +982,14 @@ enet)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-enet.c" PLATFORM_C_SRC="pcap-enet.c"
;; ;;
haiku) haiku)
# #
# Capture module # Capture module
# #
PLATFORM_CXX_SRC="pcap-haiku.cpp" PLATFORM_CXX_SRC="pcap-haiku.cpp"
# #
# Just for the sake of it. # Just for the sake of it.
@ -1001,7 +1001,7 @@ linux)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-linux.c" PLATFORM_C_SRC="pcap-linux.c"
# #
# Do we have the wireless extensions? # Do we have the wireless extensions?
@ -1102,7 +1102,7 @@ bpf)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-bpf.c" PLATFORM_C_SRC="pcap-bpf.c"
# #
# Check whether we have the *BSD-style ioctls. # Check whether we have the *BSD-style ioctls.
@ -1127,21 +1127,21 @@ pf)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-pf.c" PLATFORM_C_SRC="pcap-pf.c"
;; ;;
snit) snit)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-snit.c" PLATFORM_C_SRC="pcap-snit.c"
;; ;;
snoop) snoop)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-snoop.c" PLATFORM_C_SRC="pcap-snoop.c"
;; ;;
dag) dag)
@ -1188,7 +1188,7 @@ null)
# #
# Capture module # Capture module
# #
PLATFORM_C_SRC="pcap-null.c" PLATFORM_C_SRC="pcap-null.c"
;; ;;
*) *)

View File

@ -7990,7 +7990,7 @@ gen_broadcast(compiler_state_t *cstate, int proto)
default: default:
bpf_error(cstate, "not a broadcast link"); bpf_error(cstate, "not a broadcast link");
} }
/*NOTREACHED*/ /*NOTREACHED*/
case Q_IP: case Q_IP:
/* /*
@ -8655,7 +8655,7 @@ gen_acode(compiler_state_t *cstate, const char *s, struct qual q)
return (b); return (b);
} else } else
bpf_error(cstate, "ARCnet address used in non-arc expression"); bpf_error(cstate, "ARCnet address used in non-arc expression");
/*NOTREACHED*/ /*NOTREACHED*/
default: default:
bpf_error(cstate, "aid supported only on ARCnet"); bpf_error(cstate, "aid supported only on ARCnet");
@ -8691,27 +8691,27 @@ gen_ahostop(compiler_state_t *cstate, const u_char *eaddr, int dir)
case Q_ADDR1: case Q_ADDR1:
bpf_error(cstate, "'addr1' and 'address1' are only supported on 802.11"); bpf_error(cstate, "'addr1' and 'address1' are only supported on 802.11");
/*NOTREACHED*/ /*NOTREACHED*/
case Q_ADDR2: case Q_ADDR2:
bpf_error(cstate, "'addr2' and 'address2' are only supported on 802.11"); bpf_error(cstate, "'addr2' and 'address2' are only supported on 802.11");
/*NOTREACHED*/ /*NOTREACHED*/
case Q_ADDR3: case Q_ADDR3:
bpf_error(cstate, "'addr3' and 'address3' are only supported on 802.11"); bpf_error(cstate, "'addr3' and 'address3' are only supported on 802.11");
/*NOTREACHED*/ /*NOTREACHED*/
case Q_ADDR4: case Q_ADDR4:
bpf_error(cstate, "'addr4' and 'address4' are only supported on 802.11"); bpf_error(cstate, "'addr4' and 'address4' are only supported on 802.11");
/*NOTREACHED*/ /*NOTREACHED*/
case Q_RA: case Q_RA:
bpf_error(cstate, "'ra' is only supported on 802.11"); bpf_error(cstate, "'ra' is only supported on 802.11");
/*NOTREACHED*/ /*NOTREACHED*/
case Q_TA: case Q_TA:
bpf_error(cstate, "'ta' is only supported on 802.11"); bpf_error(cstate, "'ta' is only supported on 802.11");
/*NOTREACHED*/ /*NOTREACHED*/
} }
abort(); abort();
/*NOTREACHED*/ /*NOTREACHED*/

2
mkdep
View File

@ -92,7 +92,7 @@ _EOF_
# hack can't deal with anything that requires a search path, and doesn't # hack can't deal with anything that requires a search path, and doesn't
# even try for anything using bracket (<>) syntax. # even try for anything using bracket (<>) syntax.
# #
# egrep '^#include[ ]*".*"' /dev/null $* | # grep -E '^#include[[:blank:]]*".*"' /dev/null $* |
# sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' | # sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' |
# #

View File

@ -104,7 +104,7 @@ clean:
# #
pkt_rx0.obj: msdos\pkt_rx0.asm pkt_rx0.obj: msdos\pkt_rx0.asm
bpf_filt.obj: bpf_filt.c pcap-int.h pcap.h pcap-bpf.h gnuc.h bpf_filt.obj: bpf_filt.c pcap-int.h pcap.h pcap-bpf.h
bpf_imag.obj: bpf_imag.c pcap-int.h pcap.h pcap-bpf.h bpf_imag.obj: bpf_imag.c pcap-int.h pcap.h pcap-bpf.h
@ -134,7 +134,7 @@ nametoad.obj: nametoad.c pcap-int.h pcap.h pcap-bpf.h gencode.h \
pcap-dos.obj: pcap-dos.c pcap.h pcap-bpf.h pcap-dos.h pcap-int.h \ pcap-dos.obj: pcap-dos.c pcap.h pcap-bpf.h pcap-dos.h pcap-int.h \
msdos\pktdrvr.h msdos\pktdrvr.h
pktdrvr.obj: msdos\pktdrvr.c gnuc.h pcap-dos.h pcap-int.h \ pktdrvr.obj: msdos\pktdrvr.c pcap-dos.h pcap-int.h \
pcap.h pcap-bpf.h msdos\pktdrvr.h msdos\pkt_stub.inc pcap.h pcap-bpf.h msdos\pktdrvr.h msdos\pkt_stub.inc
ndis2.obj: msdos\ndis2.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h \ ndis2.obj: msdos\ndis2.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h \
@ -142,7 +142,7 @@ ndis2.obj: msdos\ndis2.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h \
pkt_rx0.o32: msdos\pkt_rx0.asm pkt_rx0.o32: msdos\pkt_rx0.asm
bpf_filt.o32: bpf_filt.c pcap-int.h pcap.h pcap-bpf.h gnuc.h bpf_filt.o32: bpf_filt.c pcap-int.h pcap.h pcap-bpf.h
bpf_imag.o32: bpf_imag.c pcap-int.h pcap.h pcap-bpf.h bpf_imag.o32: bpf_imag.c pcap-int.h pcap.h pcap-bpf.h
@ -172,7 +172,7 @@ nametoad.o32: nametoad.c pcap-int.h pcap.h pcap-bpf.h gencode.h \
pcap-dos.o32: pcap-dos.c pcap.h pcap-bpf.h pcap-dos.h pcap-int.h \ pcap-dos.o32: pcap-dos.c pcap.h pcap-bpf.h pcap-dos.h pcap-int.h \
msdos\pktdrvr.h msdos\pktdrvr.h
pktdrvr.o32: msdos\pktdrvr.c gnuc.h pcap-dos.h pcap-int.h \ pktdrvr.o32: msdos\pktdrvr.c pcap-dos.h pcap-int.h \
pcap.h pcap-bpf.h msdos\pktdrvr.h msdos\pkt_stub.inc pcap.h pcap-bpf.h msdos\pktdrvr.h msdos\pkt_stub.inc
ndis2.o32: msdos\ndis2.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h \ ndis2.o32: msdos\ndis2.c pcap-dos.h pcap-int.h pcap.h pcap-bpf.h \

View File

@ -267,7 +267,7 @@ pcap_nametonetaddr(const char *name)
* *not* always get set if getnetbyname_r() succeeds. * *not* always get set if getnetbyname_r() succeeds.
*/ */
np = NULL; np = NULL;
err = getnetbyname_r(name, &result_buf, buf, sizeof buf, &np, err = getnetbyname_r(name, &result_buf, buf, sizeof buf, &np,
&h_errnoval); &h_errnoval);
if (err != 0) { if (err != 0) {
/* /*
@ -296,16 +296,16 @@ pcap_nametonetaddr(const char *name)
else else
np = &result_buf; np = &result_buf;
#else #else
/* /*
* We don't have any getnetbyname_r(); either we have a * We don't have any getnetbyname_r(); either we have a
* getnetbyname() that uses thread-specific data, in which * getnetbyname() that uses thread-specific data, in which
* case we're thread-safe (sufficiently recent FreeBSD, * case we're thread-safe (sufficiently recent FreeBSD,
* sufficiently recent Darwin-based OS, sufficiently recent * sufficiently recent Darwin-based OS, sufficiently recent
* HP-UX, sufficiently recent Tru64 UNIX), or we have the * HP-UX, sufficiently recent Tru64 UNIX), or we have the
* traditional getnetbyname() (everything else, including * traditional getnetbyname() (everything else, including
* current NetBSD and OpenBSD), in which case we're not * current NetBSD and OpenBSD), in which case we're not
* thread-safe. * thread-safe.
*/ */
np = getnetbyname(name); np = getnetbyname(name);
#endif #endif
if (np != NULL) if (np != NULL)
@ -552,16 +552,16 @@ pcap_nametoproto(const char *str)
else else
p = &result_buf; p = &result_buf;
#else #else
/* /*
* We don't have any getprotobyname_r(); either we have a * We don't have any getprotobyname_r(); either we have a
* getprotobyname() that uses thread-specific data, in which * getprotobyname() that uses thread-specific data, in which
* case we're thread-safe (sufficiently recent FreeBSD, * case we're thread-safe (sufficiently recent FreeBSD,
* sufficiently recent Darwin-based OS, sufficiently recent * sufficiently recent Darwin-based OS, sufficiently recent
* HP-UX, sufficiently recent Tru64 UNIX, Windows), or we have * HP-UX, sufficiently recent Tru64 UNIX, Windows), or we have
* the traditional getprotobyname() (everything else, including * the traditional getprotobyname() (everything else, including
* current NetBSD and OpenBSD), in which case we're not * current NetBSD and OpenBSD), in which case we're not
* thread-safe. * thread-safe.
*/ */
p = getprotobyname(str); p = getprotobyname(str);
#endif #endif
if (p != 0) if (p != 0)

View File

@ -3029,14 +3029,14 @@ dot_dump_edge(struct icode *ic, struct block *block, FILE *out)
* *
* example DOT for BPF `ip src host 1.1.1.1' is: * example DOT for BPF `ip src host 1.1.1.1' is:
digraph BPF { digraph BPF {
block0 [shape=ellipse, id="block-0" label="BLOCK0\n\n(000) ldh [12]\n(001) jeq #0x800 jt 2 jf 5" tooltip="val[A]=0 val[X]=0"]; block0 [shape=ellipse, id="block-0" label="BLOCK0\n\n(000) ldh [12]\n(001) jeq #0x800 jt 2 jf 5" tooltip="val[A]=0 val[X]=0"];
block1 [shape=ellipse, id="block-1" label="BLOCK1\n\n(002) ld [26]\n(003) jeq #0x1010101 jt 4 jf 5" tooltip="val[A]=0 val[X]=0"]; block1 [shape=ellipse, id="block-1" label="BLOCK1\n\n(002) ld [26]\n(003) jeq #0x1010101 jt 4 jf 5" tooltip="val[A]=0 val[X]=0"];
block2 [shape=ellipse, id="block-2" label="BLOCK2\n\n(004) ret #68" tooltip="val[A]=0 val[X]=0", peripheries=2]; block2 [shape=ellipse, id="block-2" label="BLOCK2\n\n(004) ret #68" tooltip="val[A]=0 val[X]=0", peripheries=2];
block3 [shape=ellipse, id="block-3" label="BLOCK3\n\n(005) ret #0" tooltip="val[A]=0 val[X]=0", peripheries=2]; block3 [shape=ellipse, id="block-3" label="BLOCK3\n\n(005) ret #0" tooltip="val[A]=0 val[X]=0", peripheries=2];
"block0":se -> "block1":n [label="T"]; "block0":se -> "block1":n [label="T"];
"block0":sw -> "block3":n [label="F"]; "block0":sw -> "block3":n [label="F"];
"block1":se -> "block2":n [label="T"]; "block1":se -> "block2":n [label="T"];
"block1":sw -> "block3":n [label="F"]; "block1":sw -> "block3":n [label="F"];
} }
* *
* After install graphviz on https://www.graphviz.org/, save it as bpf.dot * After install graphviz on https://www.graphviz.org/, save it as bpf.dot

View File

@ -367,9 +367,9 @@ bt_read_linux(pcap_t *handle, int max_packets _U_, pcap_handler callback, u_char
case HCI_CMSG_DIR: case HCI_CMSG_DIR:
memcpy(&in, CMSG_DATA(cmsg), sizeof in); memcpy(&in, CMSG_DATA(cmsg), sizeof in);
break; break;
case HCI_CMSG_TSTAMP: case HCI_CMSG_TSTAMP:
memcpy(&pkth.ts, CMSG_DATA(cmsg), memcpy(&pkth.ts, CMSG_DATA(cmsg),
sizeof pkth.ts); sizeof pkth.ts);
break; break;
} }
cmsg = CMSG_NXTHDR(&msg, cmsg); cmsg = CMSG_NXTHDR(&msg, cmsg);

View File

@ -964,7 +964,7 @@
* which is stored with each packet: * which is stored with each packet:
* *
* EXP_PDU_TAG_DISSECTOR_NAME the name of the Wireshark dissector * EXP_PDU_TAG_DISSECTOR_NAME the name of the Wireshark dissector
* that can make sense of the data stored. * that can make sense of the data stored.
* *
* EXP_PDU_TAG_HEUR_DISSECTOR_NAME the name of the Wireshark heuristic * EXP_PDU_TAG_HEUR_DISSECTOR_NAME the name of the Wireshark heuristic
* dissector that can make sense of the * dissector that can make sense of the
@ -1240,7 +1240,7 @@ static struct linktype_map {
{ DLT_FR, LINKTYPE_FRELAY }, { DLT_FR, LINKTYPE_FRELAY },
#endif #endif
{ DLT_ATM_RFC1483, LINKTYPE_ATM_RFC1483 }, { DLT_ATM_RFC1483, LINKTYPE_ATM_RFC1483 },
{ DLT_RAW, LINKTYPE_RAW }, { DLT_RAW, LINKTYPE_RAW },
{ DLT_SLIP_BSDOS, LINKTYPE_SLIP_BSDOS }, { DLT_SLIP_BSDOS, LINKTYPE_SLIP_BSDOS },
{ DLT_PPP_BSDOS, LINKTYPE_PPP_BSDOS }, { DLT_PPP_BSDOS, LINKTYPE_PPP_BSDOS },

View File

@ -344,7 +344,7 @@ pcap_platform_finddevs(pcap_if_list_t *devlistp, char *errbuf)
linknamelist_t *entry, *next; linknamelist_t *entry, *next;
linkwalk_t lw = {NULL, 0}; linkwalk_t lw = {NULL, 0};
int save_errno; int save_errno;
/* /*
* Get the list of regular interfaces first. * Get the list of regular interfaces first.

View File

@ -2,7 +2,7 @@
* pcap-linux.c: Packet capture interface to the Linux kernel * pcap-linux.c: Packet capture interface to the Linux kernel
* *
* Copyright (c) 2000 Torsten Landschoff <torsten@debian.org> * Copyright (c) 2000 Torsten Landschoff <torsten@debian.org>
* Sebastian Krahmer <krahmer@cs.uni-potsdam.de> * Sebastian Krahmer <krahmer@cs.uni-potsdam.de>
* *
* License: BSD * License: BSD
* *
@ -315,8 +315,8 @@ static const struct timeval netdown_timeout = {
*/ */
static int iface_get_id(int fd, const char *device, char *ebuf); static int iface_get_id(int fd, const char *device, char *ebuf);
static int iface_get_mtu(int fd, const char *device, char *ebuf); static int iface_get_mtu(int fd, const char *device, char *ebuf);
static int iface_get_arptype(int fd, const char *device, char *ebuf); static int iface_get_arptype(int fd, const char *device, char *ebuf);
static int iface_bind(int fd, int ifindex, char *ebuf, int protocol); static int iface_bind(int fd, int ifindex, char *ebuf, int protocol);
static int enter_rfmon_mode(pcap_t *handle, int sock_fd, static int enter_rfmon_mode(pcap_t *handle, int sock_fd,
const char *device); const char *device);
static int iface_get_ts_types(const char *device, pcap_t *handle, static int iface_get_ts_types(const char *device, pcap_t *handle,
@ -3498,7 +3498,7 @@ static int pcap_wait_for_frames_mmap(pcap_t *handle)
* don't need to poll. * don't need to poll.
*/ */
for (;;) { for (;;) {
/* /*
* Yes, we do this even in non-blocking mode, as it's * Yes, we do this even in non-blocking mode, as it's
* the only way to get error indications from a * the only way to get error indications from a
* tpacket socket. * tpacket socket.

View File

@ -526,8 +526,8 @@ netfilter_activate(pcap_t* handle)
nftype_t type = OTHER; nftype_t type = OTHER;
int i; int i;
if (strncmp(dev, NFLOG_IFACE, strlen(NFLOG_IFACE)) == 0) { if (strncmp(dev, NFLOG_IFACE, strlen(NFLOG_IFACE)) == 0) {
dev += strlen(NFLOG_IFACE); dev += strlen(NFLOG_IFACE);
type = NFLOG; type = NFLOG;
} else if (strncmp(dev, NFQUEUE_IFACE, strlen(NFQUEUE_IFACE)) == 0) { } else if (strncmp(dev, NFQUEUE_IFACE, strlen(NFQUEUE_IFACE)) == 0) {

View File

@ -2085,8 +2085,8 @@ get_if_flags(const char *name, bpf_u_int32 *flags, char *errbuf)
#ifdef OID_GEN_PHYSICAL_MEDIUM_EX #ifdef OID_GEN_PHYSICAL_MEDIUM_EX
OID_GEN_PHYSICAL_MEDIUM_EX, OID_GEN_PHYSICAL_MEDIUM_EX,
#endif #endif
OID_GEN_PHYSICAL_MEDIUM OID_GEN_PHYSICAL_MEDIUM
}; };
#define N_GEN_PHYSICAL_MEDIUM_OIDS (sizeof gen_physical_medium_oids / sizeof gen_physical_medium_oids[0]) #define N_GEN_PHYSICAL_MEDIUM_OIDS (sizeof gen_physical_medium_oids / sizeof gen_physical_medium_oids[0])
size_t i; size_t i;
#endif /* OID_GEN_PHYSICAL_MEDIUM */ #endif /* OID_GEN_PHYSICAL_MEDIUM */
@ -2398,7 +2398,7 @@ pcap_platform_finddevs(pcap_if_list_t *devlistp, char *errbuf)
desc++; desc++;
/* /*
* Found it - "desc" points to the first of the two * Found it - "desc" points to the first of the two
* nulls at the end of the list of names, so the * nulls at the end of the list of names, so the
* first byte of the list of descriptions is two bytes * first byte of the list of descriptions is two bytes
* after it. * after it.

View File

@ -634,7 +634,7 @@ static int process_client_data (char *errbuf) { /* returns: -1 = error, 0
"malloc"); "malloc");
return -1; return -1;
} }
memset((char *)addr, 0, sizeof(pcap_addr_t)); /* bzero() is deprecated, replaced with memset() */ memset((char *)addr, 0, sizeof(pcap_addr_t)); /* bzero() is deprecated, replaced with memset() */
if (iff->addresses == 0) iff->addresses = addr; if (iff->addresses == 0) iff->addresses = addr;
if (prev_addr) prev_addr->next = addr; /* insert a forward link */ if (prev_addr) prev_addr->next = addr; /* insert a forward link */
if (*ptr) { /* if there is a count for the address */ if (*ptr) { /* if there is a count for the address */

View File

@ -52,16 +52,16 @@ A { text-decoration:none }
<P> <P>
<CENTER> <CENTER>
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3> <TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
<TR><TH>Application</TH> <TH>Capture</TH> <TH>Termination</TH></TR> <TR><TH>Application</TH> <TH>Capture</TH> <TH>Termination</TH></TR>
<TR><TH VALIGN=TOP NOWRAP>wireshark</TH> <TR><TH VALIGN=TOP NOWRAP>wireshark</TH>
<TD VALIGN=TOP>pcap_dispatch(all packets in one buffer of capture only)</TD> <TD VALIGN=TOP>pcap_dispatch(all packets in one buffer of capture only)</TD>
<TD VALIGN=TOP>pcap_breakloop()</TD> <TD VALIGN=TOP>pcap_breakloop()</TD>
</TR> </TR>
<TR><TH VALIGN=TOP NOWRAP>tshark</TH> <TR><TH VALIGN=TOP NOWRAP>tshark</TH>
<TD VALIGN=TOP>pcap_dispatch(one buffer of capture only)</TD> <TD VALIGN=TOP>pcap_dispatch(one buffer of capture only)</TD>
<TD VALIGN=TOP>Since a CTRL-C was used to terminate the application, pcap_breakloop() is never called.</TD> <TD VALIGN=TOP>Since a CTRL-C was used to terminate the application, pcap_breakloop() is never called.</TD>
</TR> </TR>
<TR><TH VALIGN=TOP NOWRAP>tcpdump</TH> <TR><TH VALIGN=TOP NOWRAP>tcpdump</TH>
<TD VALIGN=TOP>pcap_loop(all packets in the next buffer, and loop forever)</TD> <TD VALIGN=TOP>pcap_loop(all packets in the next buffer, and loop forever)</TD>
<TD VALIGN=TOP>pcap_breakloop()</TD> <TD VALIGN=TOP>pcap_breakloop()</TD>
</TR> </TR>
@ -771,13 +771,13 @@ A { text-decoration:none }
<P> <P>
<TABLE> <TABLE>
<TR> <TR>
<TD STYLE="background-color: #c0FFc0">&nbsp;[Packet Header]&nbsp;</TD> <TD STYLE="background-color: #c0FFc0">&nbsp;[Packet Header]&nbsp;</TD>
<TD STYLE="background-color: #c0FFc0">&nbsp;[Packet Data]&nbsp;</TD> <TD STYLE="background-color: #c0FFc0">&nbsp;[Packet Data]&nbsp;</TD>
<TD STYLE="background-color: #c0c0FF">&nbsp;[Packet Header]&nbsp;</TD> <TD STYLE="background-color: #c0c0FF">&nbsp;[Packet Header]&nbsp;</TD>
<TD STYLE="background-color: #c0c0FF">&nbsp;[Packet Data]&nbsp;</TD> <TD STYLE="background-color: #c0c0FF">&nbsp;[Packet Data]&nbsp;</TD>
<TD STYLE="background-color: #e0c0c0">&nbsp;[Packet Header]&nbsp;</TD> <TD STYLE="background-color: #e0c0c0">&nbsp;[Packet Header]&nbsp;</TD>
<TD STYLE="background-color: #e0c0c0">&nbsp;[Packet Data]&nbsp;</TD> <TD STYLE="background-color: #e0c0c0">&nbsp;[Packet Data]&nbsp;</TD>
<TD>...</TD> <TD>...</TD>
</TR> </TR>
</TABLE> </TABLE>

View File

@ -403,7 +403,7 @@ snf_findalldevs(pcap_if_list_t *devlistp, char *errbuf)
* the port? If so, should we add them to the * the port? If so, should we add them to the
* entry for the device, if they're not already in the * entry for the device, if they're not already in the
* list of IP addresses for the device? * list of IP addresses for the device?
*/ */
(void)snprintf(desc,MAX_DESC_LENGTH,"Myricom %ssnf%d", (void)snprintf(desc,MAX_DESC_LENGTH,"Myricom %ssnf%d",
merge ? "Merge Bitmask Port " : "", merge ? "Merge Bitmask Port " : "",
merge ? 1 << ifa->snf_ifa_portnum : ifa->snf_ifa_portnum); merge ? 1 << ifa->snf_ifa_portnum : ifa->snf_ifa_portnum);
@ -452,14 +452,14 @@ snf_findalldevs(pcap_if_list_t *devlistp, char *errbuf)
*/ */
ret = inet_pton(AF_INET, dev->name, &addr.sin_addr); ret = inet_pton(AF_INET, dev->name, &addr.sin_addr);
if (ret == 1) { if (ret == 1) {
/* /*
* Successful conversion of device name * Successful conversion of device name
* to IPv4 address. * to IPv4 address.
*/ */
addr.sin_family = AF_INET; addr.sin_family = AF_INET;
if (add_addr_to_dev(dev, &addr, sizeof(addr), if (add_addr_to_dev(dev, &addr, sizeof(addr),
NULL, 0, NULL, 0, NULL, 0, errbuf) == -1) NULL, 0, NULL, 0, NULL, 0, errbuf) == -1)
return -1; return -1;
} else if (ret == -1) { } else if (ret == -1) {
/* /*
* Error. * Error.
@ -475,7 +475,7 @@ snf_findalldevs(pcap_if_list_t *devlistp, char *errbuf)
snf_freeifaddrs(ifaddrs); snf_freeifaddrs(ifaddrs);
/* /*
* Create a snfX entry if port aggregation is enabled * Create a snfX entry if port aggregation is enabled
*/ */
if (merge) { if (merge) {
/* /*
* Add a new entry with all ports bitmask * Add a new entry with all ports bitmask

View File

@ -117,10 +117,10 @@ struct mon_bin_mfetch {
#define MON_IOCX_MFETCH _IOWR(MON_IOC_MAGIC, 7, struct mon_bin_mfetch) #define MON_IOCX_MFETCH _IOWR(MON_IOC_MAGIC, 7, struct mon_bin_mfetch)
#define MON_IOCH_MFLUSH _IO(MON_IOC_MAGIC, 8) #define MON_IOCH_MFLUSH _IO(MON_IOC_MAGIC, 8)
#define MON_BIN_SETUP 0x1 /* setup hdr is present*/ #define MON_BIN_SETUP 0x1 /* setup hdr is present*/
#define MON_BIN_SETUP_ZERO 0x2 /* setup buffer is not available */ #define MON_BIN_SETUP_ZERO 0x2 /* setup buffer is not available */
#define MON_BIN_DATA_ZERO 0x4 /* data buffer is not available */ #define MON_BIN_DATA_ZERO 0x4 /* data buffer is not available */
#define MON_BIN_ERROR 0x8 #define MON_BIN_ERROR 0x8
/* /*
* Private data for capturing on Linux USB. * Private data for capturing on Linux USB.
@ -373,13 +373,13 @@ probe_devices(int bus)
ctrl.bRequest = USB_REQ_GET_DESCRIPTOR; ctrl.bRequest = USB_REQ_GET_DESCRIPTOR;
ctrl.wValue = USB_DT_DEVICE << 8; ctrl.wValue = USB_DT_DEVICE << 8;
ctrl.wIndex = 0; ctrl.wIndex = 0;
ctrl.wLength = sizeof(descriptor); ctrl.wLength = sizeof(descriptor);
#else #else
ctrl.requesttype = USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE; ctrl.requesttype = USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE;
ctrl.request = USB_REQ_GET_DESCRIPTOR; ctrl.request = USB_REQ_GET_DESCRIPTOR;
ctrl.value = USB_DT_DEVICE << 8; ctrl.value = USB_DT_DEVICE << 8;
ctrl.index = 0; ctrl.index = 0;
ctrl.length = sizeof(descriptor); ctrl.length = sizeof(descriptor);
#endif #endif
ctrl.data = descriptor; ctrl.data = descriptor;
ctrl.timeout = CTRL_TIMEOUT; ctrl.timeout = CTRL_TIMEOUT;
@ -463,7 +463,7 @@ static int
usb_activate(pcap_t* handle) usb_activate(pcap_t* handle)
{ {
struct pcap_usb_linux *handlep = handle->priv; struct pcap_usb_linux *handlep = handle->priv;
char full_path[USB_LINE_LEN]; char full_path[USB_LINE_LEN];
/* /*
* Turn a negative snapshot value (invalid), a snapshot value of * Turn a negative snapshot value (invalid), a snapshot value of

View File

@ -149,7 +149,7 @@ struct bpf_program {
#define BPF_B 0x10 #define BPF_B 0x10
/* 0x18 reserved; used by BSD/OS */ /* 0x18 reserved; used by BSD/OS */
#define BPF_MODE(code) ((code) & 0xe0) #define BPF_MODE(code) ((code) & 0xe0)
#define BPF_IMM 0x00 #define BPF_IMM 0x00
#define BPF_ABS 0x20 #define BPF_ABS 0x20
#define BPF_IND 0x40 #define BPF_IND 0x40
#define BPF_MEM 0x60 #define BPF_MEM 0x60
@ -243,8 +243,8 @@ struct bpf_program {
*/ */
struct bpf_insn { struct bpf_insn {
u_short code; u_short code;
u_char jt; u_char jt;
u_char jf; u_char jf;
bpf_u_int32 k; bpf_u_int32 k;
}; };

View File

@ -110,7 +110,7 @@
* From a quick look at sys/net/if_hippi.h and sys/net/if_hippisubr.c * From a quick look at sys/net/if_hippi.h and sys/net/if_hippisubr.c
* in an older version of NetBSD , the header appears to be: * in an older version of NetBSD , the header appears to be:
* *
* a 1-byte ULP field (ULP-id)? * a 1-byte ULP field (ULP-id)?
* *
* a 1-byte flags field; * a 1-byte flags field;
* *
@ -1292,7 +1292,7 @@
* which is stored with each packet: * which is stored with each packet:
* *
* EXP_PDU_TAG_DISSECTOR_NAME the name of the Wireshark dissector * EXP_PDU_TAG_DISSECTOR_NAME the name of the Wireshark dissector
* that can make sense of the data stored. * that can make sense of the data stored.
* *
* EXP_PDU_TAG_HEUR_DISSECTOR_NAME the name of the Wireshark heuristic * EXP_PDU_TAG_HEUR_DISSECTOR_NAME the name of the Wireshark heuristic
* dissector that can make sense of the * dissector that can make sense of the

View File

@ -571,7 +571,7 @@ PCAP_AVAILABLE_0_4
PCAP_API const u_char *pcap_next(pcap_t *, struct pcap_pkthdr *); PCAP_API const u_char *pcap_next(pcap_t *, struct pcap_pkthdr *);
PCAP_AVAILABLE_0_8 PCAP_AVAILABLE_0_8
PCAP_API int pcap_next_ex(pcap_t *, struct pcap_pkthdr **, const u_char **); PCAP_API int pcap_next_ex(pcap_t *, struct pcap_pkthdr **, const u_char **);
PCAP_AVAILABLE_0_8 PCAP_AVAILABLE_0_8
PCAP_API void pcap_breakloop(pcap_t *); PCAP_API void pcap_breakloop(pcap_t *);
@ -583,7 +583,7 @@ PCAP_AVAILABLE_0_4
PCAP_API int pcap_setfilter(pcap_t *, struct bpf_program *); PCAP_API int pcap_setfilter(pcap_t *, struct bpf_program *);
PCAP_AVAILABLE_0_9 PCAP_AVAILABLE_0_9
PCAP_API int pcap_setdirection(pcap_t *, pcap_direction_t); PCAP_API int pcap_setdirection(pcap_t *, pcap_direction_t);
PCAP_AVAILABLE_0_7 PCAP_AVAILABLE_0_7
PCAP_API int pcap_getnonblock(pcap_t *, char *); PCAP_API int pcap_getnonblock(pcap_t *, char *);

View File

@ -1,5 +1,5 @@
# Copyright (c) 1993, 1994, 1995, 1996 # Copyright (c) 1993, 1994, 1995, 1996
# The Regents of the University of California. All rights reserved. # The Regents of the University of California. All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that: (1) source code distributions # modification, are permitted provided that: (1) source code distributions

View File

@ -5,7 +5,7 @@
<key>Disabled</key> <key>Disabled</key>
<false/> <false/>
<key>Label</key> <key>Label</key>
<string>com.tcpdump.rpcapd</string> <string>org.tcpdump.rpcapd</string>
<key>Program</key> <key>Program</key>
<string>/usr/local/libexec/rpcapd</string> <string>/usr/local/libexec/rpcapd</string>
<key>ProgramArguments</key> <key>ProgramArguments</key>

View File

@ -30,7 +30,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\" .\"
.TH RPCAPD @MAN_ADMIN_COMMANDS@ "13 January 2019" .TH RPCAPD @MAN_ADMIN_COMMANDS@ "20 January 2023"
.SH NAME .SH NAME
rpcapd \- capture daemon to be controlled by a remote libpcap application rpcapd \- capture daemon to be controlled by a remote libpcap application
.SH SYNOPSIS .SH SYNOPSIS
@ -173,6 +173,46 @@ needs sufficient privileges to perform packet capture, e.g.
run as root or be owned by root and have suid set. Most operating run as root or be owned by root and have suid set. Most operating
systems provide more elegant solutions when run as user than the systems provide more elegant solutions when run as user than the
above solutions, all of them different. above solutions, all of them different.
.LP
If your system supports
.BR systemd (1)
and the corresponding
.B rpcapd.socket
and
.B rpcapd@.service
service files have been
installed, the rpcapd service can be enabled by enabling the
.B rpcapd.socket
unit.
.LP
If your system supports
.BR launchd (@MAN_ADMIN_COMMANDS@)
and the
.B org.tcpdump.rpcapd.plist
file has been installed, the rpcapd service can be enabled by loading
the
.B org.tcpdump.rpcapd
service.
.LP
If your system supports
.BR inetd (@MAN_ADMIN_COMMANDS@)
and the
.B rpcapd.inetd.conf
entry has been added to
.BR inetd.conf (@MAN_FILE_FORMATS@),
the rpcapd service can be enabled by telling
.B inetd
to reread its configuration file.
.LP
If your system supports
.BR xinetd (@MAN_ADMIN_COMMANDS@)
and the
.B rpcapd.xinetd.conf
entry has been added to
.BR xinetd.conf (@MAN_FILE_FORMATS@),
the rpcapd service can be enabled by telling
.B xinetd
to reread its configuration file.
.SH OPTIONS .SH OPTIONS
.TP .TP
.BI \-b " address" .BI \-b " address"

View File

@ -1389,7 +1389,7 @@ int sock_bufferize(const void *data, int size, char *outbuf, int *offset, int to
* *
* SOCK_RECEIVALL_XXX: * SOCK_RECEIVALL_XXX:
* *
* if SOCK_RECEIVEALL_NO, return as soon as some data is ready * if SOCK_RECEIVEALL_NO, return as soon as some data is ready
* if SOCK_RECEIVALL_YES, wait until 'size' data has been * if SOCK_RECEIVALL_YES, wait until 'size' data has been
* received (in case the socket does not have enough data available). * received (in case the socket does not have enough data available).
* *

View File

@ -1,5 +1,5 @@
# Copyright (c) 1993, 1994, 1995, 1996 # Copyright (c) 1993, 1994, 1995, 1996
# The Regents of the University of California. All rights reserved. # The Regents of the University of California. All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that: (1) source code distributions # modification, are permitted provided that: (1) source code distributions