svn commit: r356341 - in stable/11: contrib/libpcap contrib/libpcap/cmake/Modules contrib/libpcap/doc contrib/libpcap/missing contrib/libpcap/msdos contrib/libpcap/pcap contrib/libpcap/rpcapd contr...
Cy Schubert
cy at FreeBSD.org
Sat Jan 4 00:44:50 UTC 2020
Author: cy
Date: Sat Jan 4 00:44:49 2020
New Revision: 356341
URL: https://svnweb.freebsd.org/changeset/base/356341
Log:
MFC r355988-r355990
r355988:
MFV r353141 (by phillip):
Update libpcap from 1.9.0 to 1.9.1.
r355989:
MFV r353143 (phillip):
Update tcpdump from 4.9.2 to 4.9.3.
r355990:
MFV r355890:
Fix libpcap issue #893: check for invalid IPv4 addresses.
This fixes errors such as:
tcpdump -i lagg0 net 999.999.999.999
This was originally discovered on a Red Hat 7.7 server and verified
to also be a bug on FreeBSD.
Obtained from: https://github.com/the-tcpdump-group/libpcap/commit/ \
07070918d5e81a515315b395f334e52589fe0fb
Fixed by: https://github.com/guyharris
Added:
stable/11/contrib/libpcap/CONTRIBUTING.md
- copied unchanged from r355988, head/contrib/libpcap/CONTRIBUTING.md
stable/11/contrib/libpcap/INSTALL.md
- copied unchanged from r355988, head/contrib/libpcap/INSTALL.md
stable/11/contrib/libpcap/README.md
- copied unchanged from r355988, head/contrib/libpcap/README.md
stable/11/contrib/libpcap/doc/
- copied from r355988, head/contrib/libpcap/doc/
stable/11/contrib/libpcap/missing/asprintf.c
- copied unchanged from r355988, head/contrib/libpcap/missing/asprintf.c
stable/11/contrib/libpcap/missing/strlcat.c
- copied unchanged from r355988, head/contrib/libpcap/missing/strlcat.c
stable/11/contrib/libpcap/missing/strlcpy.c
- copied unchanged from r355988, head/contrib/libpcap/missing/strlcpy.c
stable/11/contrib/libpcap/missing/win_asprintf.c
- copied unchanged from r355988, head/contrib/libpcap/missing/win_asprintf.c
stable/11/contrib/libpcap/pcap/socket.h
- copied unchanged from r355988, head/contrib/libpcap/pcap/socket.h
stable/11/contrib/libpcap/pcap_set_immediate_mode.3pcap.in
- copied unchanged from r355988, head/contrib/libpcap/pcap_set_immediate_mode.3pcap.in
stable/11/contrib/libpcap/pcap_set_protocol_linux.3pcap
- copied unchanged from r355988, head/contrib/libpcap/pcap_set_protocol_linux.3pcap
stable/11/contrib/libpcap/rpcapd/
- copied from r355988, head/contrib/libpcap/rpcapd/
stable/11/contrib/libpcap/testprogs/
- copied from r355988, head/contrib/libpcap/testprogs/
stable/11/contrib/tcpdump/configure.ac
- copied unchanged from r355989, head/contrib/tcpdump/configure.ac
Deleted:
stable/11/contrib/libpcap/CONTRIBUTING
stable/11/contrib/libpcap/README
stable/11/contrib/libpcap/README.Win32
stable/11/contrib/libpcap/README.aix
stable/11/contrib/libpcap/README.dag
stable/11/contrib/libpcap/README.hpux
stable/11/contrib/libpcap/README.linux
stable/11/contrib/libpcap/README.macos
stable/11/contrib/libpcap/README.septel
stable/11/contrib/libpcap/README.sita
stable/11/contrib/libpcap/README.tru64
stable/11/contrib/libpcap/cmake/Modules/FindPthreads-w32.cmake
stable/11/contrib/libpcap/pcap_set_immediate_mode.3pcap
stable/11/contrib/libpcap/pcap_set_protocol.3pcap
Modified:
stable/11/contrib/libpcap/CHANGES
stable/11/contrib/libpcap/CMakeLists.txt
stable/11/contrib/libpcap/CREDITS
stable/11/contrib/libpcap/Makefile.in
stable/11/contrib/libpcap/VERSION
stable/11/contrib/libpcap/aclocal.m4
stable/11/contrib/libpcap/bpf_filter.c
stable/11/contrib/libpcap/cmake/Modules/FindPacket.cmake
stable/11/contrib/libpcap/cmakeconfig.h.in
stable/11/contrib/libpcap/config.guess
stable/11/contrib/libpcap/config.h.in
stable/11/contrib/libpcap/config.sub
stable/11/contrib/libpcap/configure
stable/11/contrib/libpcap/configure.ac
stable/11/contrib/libpcap/diag-control.h
stable/11/contrib/libpcap/fmtutils.c
stable/11/contrib/libpcap/fmtutils.h
stable/11/contrib/libpcap/ftmacros.h
stable/11/contrib/libpcap/gencode.c
stable/11/contrib/libpcap/gencode.h
stable/11/contrib/libpcap/grammar.y
stable/11/contrib/libpcap/missing/snprintf.c
stable/11/contrib/libpcap/missing/win_snprintf.c
stable/11/contrib/libpcap/msdos/readme.dos
stable/11/contrib/libpcap/nametoaddr.c
stable/11/contrib/libpcap/optimize.c
stable/11/contrib/libpcap/pcap-bpf.c
stable/11/contrib/libpcap/pcap-bt-linux.c
stable/11/contrib/libpcap/pcap-bt-monitor-linux.c
stable/11/contrib/libpcap/pcap-common.c
stable/11/contrib/libpcap/pcap-common.h
stable/11/contrib/libpcap/pcap-dag.c
stable/11/contrib/libpcap/pcap-dlpi.c
stable/11/contrib/libpcap/pcap-dos.c
stable/11/contrib/libpcap/pcap-filter.manmisc.in
stable/11/contrib/libpcap/pcap-int.h
stable/11/contrib/libpcap/pcap-libdlpi.c
stable/11/contrib/libpcap/pcap-linktype.manmisc.in
stable/11/contrib/libpcap/pcap-linux.c
stable/11/contrib/libpcap/pcap-netfilter-linux.c
stable/11/contrib/libpcap/pcap-netmap.c
stable/11/contrib/libpcap/pcap-new.c
stable/11/contrib/libpcap/pcap-npf.c
stable/11/contrib/libpcap/pcap-null.c
stable/11/contrib/libpcap/pcap-rpcap.c
stable/11/contrib/libpcap/pcap-rpcap.h
stable/11/contrib/libpcap/pcap-savefile.manfile.in
stable/11/contrib/libpcap/pcap-septel.c
stable/11/contrib/libpcap/pcap-sita.c
stable/11/contrib/libpcap/pcap-sita.html
stable/11/contrib/libpcap/pcap-snf.c
stable/11/contrib/libpcap/pcap-tc.c
stable/11/contrib/libpcap/pcap-tstamp.manmisc.in
stable/11/contrib/libpcap/pcap-usb-linux.c
stable/11/contrib/libpcap/pcap.3pcap.in
stable/11/contrib/libpcap/pcap.c
stable/11/contrib/libpcap/pcap/bpf.h
stable/11/contrib/libpcap/pcap/compiler-tests.h
stable/11/contrib/libpcap/pcap/dlt.h
stable/11/contrib/libpcap/pcap/funcattrs.h
stable/11/contrib/libpcap/pcap/nflog.h
stable/11/contrib/libpcap/pcap/pcap-inttypes.h
stable/11/contrib/libpcap/pcap/pcap.h
stable/11/contrib/libpcap/pcap/sll.h
stable/11/contrib/libpcap/pcap_activate.3pcap
stable/11/contrib/libpcap/pcap_breakloop.3pcap
stable/11/contrib/libpcap/pcap_can_set_rfmon.3pcap
stable/11/contrib/libpcap/pcap_compile.3pcap.in
stable/11/contrib/libpcap/pcap_create.3pcap
stable/11/contrib/libpcap/pcap_datalink.3pcap.in
stable/11/contrib/libpcap/pcap_datalink_name_to_val.3pcap
stable/11/contrib/libpcap/pcap_datalink_val_to_name.3pcap
stable/11/contrib/libpcap/pcap_dump.3pcap
stable/11/contrib/libpcap/pcap_dump_file.3pcap
stable/11/contrib/libpcap/pcap_dump_flush.3pcap
stable/11/contrib/libpcap/pcap_dump_ftell.3pcap
stable/11/contrib/libpcap/pcap_dump_open.3pcap.in
stable/11/contrib/libpcap/pcap_file.3pcap
stable/11/contrib/libpcap/pcap_fileno.3pcap
stable/11/contrib/libpcap/pcap_findalldevs.3pcap
stable/11/contrib/libpcap/pcap_freecode.3pcap
stable/11/contrib/libpcap/pcap_get_required_select_timeout.3pcap
stable/11/contrib/libpcap/pcap_get_selectable_fd.3pcap
stable/11/contrib/libpcap/pcap_get_tstamp_precision.3pcap.in
stable/11/contrib/libpcap/pcap_geterr.3pcap
stable/11/contrib/libpcap/pcap_inject.3pcap
stable/11/contrib/libpcap/pcap_is_swapped.3pcap
stable/11/contrib/libpcap/pcap_list_datalinks.3pcap.in
stable/11/contrib/libpcap/pcap_list_tstamp_types.3pcap.in
stable/11/contrib/libpcap/pcap_lookupdev.3pcap
stable/11/contrib/libpcap/pcap_lookupnet.3pcap
stable/11/contrib/libpcap/pcap_loop.3pcap
stable/11/contrib/libpcap/pcap_major_version.3pcap
stable/11/contrib/libpcap/pcap_next_ex.3pcap
stable/11/contrib/libpcap/pcap_offline_filter.3pcap
stable/11/contrib/libpcap/pcap_open_dead.3pcap.in
stable/11/contrib/libpcap/pcap_open_live.3pcap
stable/11/contrib/libpcap/pcap_open_offline.3pcap.in
stable/11/contrib/libpcap/pcap_set_datalink.3pcap
stable/11/contrib/libpcap/pcap_set_timeout.3pcap
stable/11/contrib/libpcap/pcap_set_tstamp_precision.3pcap.in
stable/11/contrib/libpcap/pcap_set_tstamp_type.3pcap.in
stable/11/contrib/libpcap/pcap_setdirection.3pcap
stable/11/contrib/libpcap/pcap_setfilter.3pcap
stable/11/contrib/libpcap/pcap_setnonblock.3pcap
stable/11/contrib/libpcap/pcap_snapshot.3pcap
stable/11/contrib/libpcap/pcap_stats.3pcap
stable/11/contrib/libpcap/pcap_strerror.3pcap
stable/11/contrib/libpcap/pcap_tstamp_type_name_to_val.3pcap
stable/11/contrib/libpcap/pcap_tstamp_type_val_to_name.3pcap
stable/11/contrib/libpcap/portability.h
stable/11/contrib/libpcap/rpcap-protocol.h
stable/11/contrib/libpcap/savefile.c
stable/11/contrib/libpcap/scanner.l
stable/11/contrib/libpcap/sf-pcap.c
stable/11/contrib/libpcap/sf-pcap.h
stable/11/contrib/libpcap/sf-pcapng.c
stable/11/contrib/libpcap/sf-pcapng.h
stable/11/contrib/libpcap/sockutils.c
stable/11/contrib/libpcap/sockutils.h
stable/11/contrib/tcpdump/CHANGES
stable/11/contrib/tcpdump/CONTRIBUTING
stable/11/contrib/tcpdump/INSTALL.txt
stable/11/contrib/tcpdump/Makefile-devel-adds
stable/11/contrib/tcpdump/Makefile.in
stable/11/contrib/tcpdump/VERSION
stable/11/contrib/tcpdump/addrtoname.c
stable/11/contrib/tcpdump/config.guess
stable/11/contrib/tcpdump/config.h.in
stable/11/contrib/tcpdump/config.sub
stable/11/contrib/tcpdump/configure
stable/11/contrib/tcpdump/netdissect.h
stable/11/contrib/tcpdump/print-802_11.c
stable/11/contrib/tcpdump/print-aoe.c
stable/11/contrib/tcpdump/print-babel.c
stable/11/contrib/tcpdump/print-bfd.c
stable/11/contrib/tcpdump/print-bgp.c
stable/11/contrib/tcpdump/print-bootp.c
stable/11/contrib/tcpdump/print-dccp.c
stable/11/contrib/tcpdump/print-decnet.c
stable/11/contrib/tcpdump/print-domain.c
stable/11/contrib/tcpdump/print-dvmrp.c
stable/11/contrib/tcpdump/print-eigrp.c
stable/11/contrib/tcpdump/print-esp.c
stable/11/contrib/tcpdump/print-fr.c
stable/11/contrib/tcpdump/print-hncp.c
stable/11/contrib/tcpdump/print-icmp.c
stable/11/contrib/tcpdump/print-icmp6.c
stable/11/contrib/tcpdump/print-ipnet.c
stable/11/contrib/tcpdump/print-isakmp.c
stable/11/contrib/tcpdump/print-juniper.c
stable/11/contrib/tcpdump/print-l2tp.c
stable/11/contrib/tcpdump/print-ldp.c
stable/11/contrib/tcpdump/print-lmp.c
stable/11/contrib/tcpdump/print-nfs.c
stable/11/contrib/tcpdump/print-openflow.c
stable/11/contrib/tcpdump/print-ospf.c
stable/11/contrib/tcpdump/print-ospf6.c
stable/11/contrib/tcpdump/print-ppi.c
stable/11/contrib/tcpdump/print-rsvp.c
stable/11/contrib/tcpdump/print-rx.c
stable/11/contrib/tcpdump/print-sflow.c
stable/11/contrib/tcpdump/print-sl.c
stable/11/contrib/tcpdump/print-sll.c
stable/11/contrib/tcpdump/print-smb.c
stable/11/contrib/tcpdump/print-tcp.c
stable/11/contrib/tcpdump/print-vrrp.c
stable/11/contrib/tcpdump/print-vtp.c
stable/11/contrib/tcpdump/print-wb.c
stable/11/contrib/tcpdump/signature.c
stable/11/contrib/tcpdump/smbutil.c
stable/11/contrib/tcpdump/tcpdump.1.in
stable/11/contrib/tcpdump/tcpdump.c
stable/11/contrib/tcpdump/util-print.c
stable/11/lib/libpcap/Makefile
stable/11/lib/libpcap/config.h
stable/11/sys/net/dlt.h
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/contrib/libpcap/CHANGES
==============================================================================
--- stable/11/contrib/libpcap/CHANGES Sat Jan 4 00:41:22 2020 (r356340)
+++ stable/11/contrib/libpcap/CHANGES Sat Jan 4 00:44:49 2020 (r356341)
@@ -1,5 +1,129 @@
-Wednesday, Jan. 25, 2017 guy at alum.mit.edu
+Sunday, July 22, 2018
+ Summary for 1.9.1 libpcap release
+ Mention pcap_get_required_select_timeout() in the main pcap man page
+ Fix pcap-usb-linux.c build on systems with musl
+ Fix assorted man page and other documentation issues
+ Plug assorted memory leaks
+ Documentation changes to use https:
+ Changes to how time stamp calculations are done
+ Lots of tweaks to make newer compilers happier and warning-free and
+ to fix instances of C undefined behavior
+ Warn if AC_PROG_CC_C99 can't enable C99 support
+ Rename pcap_set_protocol() to pcap_set_protocol_linux().
+ Align pcap_t private data on an 8-byte boundary.
+ Fix various error messages
+ Use 64-bit clean API in dag_findalldevs()
+ Fix cleaning up after some errors
+ Work around some ethtool ioctl bugs in newer Linux kernels (GitHub
+ issue #689)
+ Add backwards compatibility sections to some man pages (GitHub issue
+ #745)
+ Fix autotool configuration on AIX and macOS
+ Don't export bpf_filter_with_aux_data() or struct bpf_aux_data;
+ they're internal-only and subject to change
+ Fix pcapng block size checking
+ On macOS, don't build rpcapd or test programs any fatter than they
+ need to be
+ Fix reading of capture statistics for Linux USB
+ Fix packet size values for Linux USB packets (GitHub issue #808)
+ Check only VID in VLAN test in filterss (GitHub issue #461)
+ Fix pcap_list_datalinks on 802.11 devices on macOS
+ Fix overflows with very large snapshot length in pcap file
+ Improve parsing of rpcapd configuration file (GitHub issue #767)
+ Handle systems without strlcpy() or strlcat() better
+ Fix crashes and other errors with invalid filter expressions
+ Fix use of uninitialized file descriptor in remote capture
+ Fix some CMake issues
+ Fix some divide-by-zero issues with the filter compiler
+ Work around a GNU libc bug in pcap_nametonetaddr()
+ Add support for DLT_LINUX_SLL2
+ Fix handling of the packet-count argument for Myricom SNF devices
+ Fix --disable-rdma in configure script (GitHub issue #782)
+ Fix compilation of TurboCap support (GitHub issue #764)
+ Constify first argument to pcap_findalldevs_ex()
+ Fix a number of issues when running rpcapd as an inetd-style daemon
+ Fix CMake issues with D-Bus libraries
+ In rpcapd, clean up termination of a capture session
+ Redo remote capture protocol negotiation
+ In rpcapd, report the same error for "invalid user name" and
+ "invalid password", to make brute-forcing harder
+ For remote captures, add an error code for "the server requires TLS"
+ Fix pcap_dump_fopen() on Windows to avoid clashes between
+ {Win,N}Pcap and application C runtimes
+ Fix exporting of functions from Windows DLLs (GitHub issue #810)
+ Fix building as part of Npcap
+ Allow rpcapd to rebind more rapidly
+ Fix building shared libpcap library on midipix (midipix.org)
+ Fix hack to detect UTF-16LE adapter names on Windows not to go past
+ the end of the string
+ Fix handling of "wireless WAN" (mobile phone network modems) on
+ Windows with WinPcap/Npcap (GitHub issue #824)
+ Have pcap_dump_open_append() create the dump file if it doesn't
+ exists (GitHub issue #247)
+ Fix the maxmum snapshot length for DLT_USBPCAP
+ Use -fPIC when building for 64-bit SPARC on Linux (GitHub issue #837)
+ Fix CMake 64-bit library installation directory on some Linux
+ distributions
+ Boost the TPACKET_V3 timeout to the maximum if a timeout of 0 was
+ specified
+ Five CVE-2019-15161, CVE-2019-15162, CVE-2019-15163, CVE-2019-15164, CVE-2019-15165
+ Fixes for CVE-2018-16301, errors in pcapng reading.
+ PCAPNG reader applies some sanity checks before doing malloc().
+
+Sunday, June 24, 2018, by mcr at sandelman.ca
Summary for 1.9.0 libpcap release
+ Added testing system to libpcap, independent of tcpdump
+ Changes to how pcap_t is activated
+ Adding support for Large stream buffers on Endace DAG cards
+ Changes to BSD 3-clause license to 2-clause licence
+ Additions to TCP header parsing, per RFC3168
+ Add CMake build process (extensive number of changes)
+ Assign a value for OpenBSD DLT_OPENFLOW.
+ Support setting non-blocking mode before activating.
+ Extensive build support for Windows VS2010 and MINGW (many many changes, over many months)
+ Added RPCAPD support when --enable-remote (default no)
+ Add the rpcap daemon source and build instructions.
+ Put back the greasy "save the capture filter string so we can tweak it"
+ hack, that keeps libpcap from capturing rpcap traffic.
+ Fixes for captures on MacOS, utun0
+ fixes so that non-AF_INET addresses, are not ==AF_INET6 addresses.
+ Add a linktype for IBM SDLC frames containing SNA PDUs.
+ pcap_compile() in 1.8.0 and later is newly thread-safe.
+ bound snaplen for linux tpacket_v2 to ~64k
+ Make VLAN filter handle both metadata and inline tags
+ D-Bus captures can now be up to 128MB in size
+ Added LORATAP DLT value
+ Added DLT_VSOCK for http://qemu-project.org/Features/VirtioVsock
+ probe_devices() fixes not to overrun buffer for name of device
+ Add linux-specific pcap_set_protocol_linux() to allow specifying a specific capture protocol.
+ RDMA sniffing support for pcap
+ Add Nordic Semiconductor Bluetooth LE sniffer link-layer header type.
+ fixes for reading /etc/ethers
+ Make it possible to build on Windows without packet.dll.
+ Add tests for large file support on UN*X.
+ Solaris fixes to work with 2.8.6
+ configuration test now looks for header files, not capture devices present
+ Fix to work with Berkeley YACC.
+ fixes for DragonBSD compilation of pcap-netmap.c
+ Clean up the ether_hostton() stuff.
+ Add an option to disable Linux memory-mapped capture support.
+ Add DAG API support checks.
+ Add Septel, Myricom SNF, and Riverbed TurboCap checks.
+ Add checks for Linux USB, Linux Bluetooth, D-Bus, and RDMA sniffing support.
+ Add a check for hardware time stamping on Linux.
+ Don't bother supporting pre-2005 Visual Studio.
+ Increased minimum autoconf version requirement to 2.64
+ Add DLT value 273 for XRA-31 sniffer
+ Clean up handing of signal interrupts in pcap_read_nocb_remote().
+ Use the XPG 4.2 versions of the networking APIs in Solaris.
+ Fix, and better explain, the "IPv6 means IPv6, not IPv4" option setting.
+ Explicitly warn that negative packet buffer timeouts should not be used.
+ rpcapd: Add support inetd-likes, including xinetd.conf, and systemd units
+ Rename DLT_IEEE802_15_4 to DLT_IEEE802_15_4_WITHFCS.
+ Add DISPLAYPORT AUX link type
+ Remove the sunos4 kernel modules and all references to them.
+ Add more interface flags to pcap_findalldevs().
+ Summary for 1.9.0 libpcap release (to 2017-01-25 by guy at alum.mit.edu)
Man page improvements
Fix Linux cooked mode userspace filtering (GitHub pull request #429)
Fix compilation if IPv6 support not enabled
Modified: stable/11/contrib/libpcap/CMakeLists.txt
==============================================================================
--- stable/11/contrib/libpcap/CMakeLists.txt Sat Jan 4 00:41:22 2020 (r356340)
+++ stable/11/contrib/libpcap/CMakeLists.txt Sat Jan 4 00:44:49 2020 (r356341)
@@ -9,7 +9,7 @@ if(POLICY CMP0042)
cmake_policy(SET CMP0042 OLD)
endif()
-set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
project(pcap)
@@ -136,83 +136,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
endif()
#
-# By default, build universal with the appropriate set of architectures
-# for the OS on which we're doing the build.
-#
-if(APPLE AND "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "")
- #
- # Get the major version of Darwin.
- #
- string(REGEX MATCH "^([0-9]+)" SYSTEM_VERSION_MAJOR "${CMAKE_SYSTEM_VERSION}")
-
- if(SYSTEM_VERSION_MAJOR LESS 8)
- #
- # Pre-Tiger. Build only for 32-bit PowerPC.
- #
- set(CMAKE_OSX_ARCHITECTURES "ppc")
- elseif(SYSTEM_VERSION_MAJOR EQUAL 8)
- #
- # Tiger. Is this prior to, or with, Intel support?
- #
- # Get the minor version of Darwin.
- #
- string(REPLACE "${SYSTEM_VERSION_MAJOR}." "" SYSTEM_MINOR_AND_PATCH_VERSION ${CMAKE_SYSTEM_VERSION})
- string(REGEX MATCH "^([0-9]+)" SYSTEM_VERSION_MINOR "${SYSTEM_MINOR_AND_PATCH_VERSION}")
- if(SYSTEM_VERSION_MINOR LESS 4)
- #
- # Prior to Intel support. Build for 32-bit
- # PowerPC and 64-bit PowerPC, with 32-bit PowerPC
- # first. (I'm guessing that's what Apple does.)
- #
- set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64")
- elseif(SYSTEM_VERSION_MINOR LESS 7)
- #
- # With Intel support but prior to x86-64 support.
- # Build for 32-bit PowerPC, 64-bit PowerPC, and x86,
- # with 32-bit PowerPC first.
- # (I'm guessing that's what Apple does.)
- #
- set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64;i386")
- else()
- #
- # With Intel support including x86-64 support.
- # Build for 32-bit PowerPC, 64-bit PowerPC, x86,
- # and x86-64, with 32-bit PowerPC first.
- # (I'm guessing that's what Apple does.)
- #
- set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64;i386;x86_64")
- endif()
- elseif(SYSTEM_VERSION_MAJOR EQUAL 9)
- #
- # Leopard. Build for 32-bit PowerPC, 64-bit
- # PowerPC, x86, and x86-64, with 32-bit PowerPC
- # first. (That's what Apple does.)
- #
- set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64;i386;x86_64")
- elseif(SYSTEM_VERSION_MAJOR EQUAL 10)
- #
- # Snow Leopard. Build for x86-64, x86, and
- # 32-bit PowerPC, with x86-64 first. (That's
- # what Apple does, even though Snow Leopard
- # doesn't run on PPC, so PPC libpcap runs under
- # Rosetta, and Rosetta doesn't support BPF
- # ioctls, so PPC programs can't do live
- # captures.)
- #
- set(CMAKE_OSX_ARCHITECTURES "x86_64;i386;ppc")
- else()
- #
- # Post-Snow Leopard. Build for x86-64 and
- # x86, with x86-64 first. (That's probably what
- # Apple does, given that Rosetta is gone.)
- # XXX - update if and when Apple drops support
- # for 32-bit x86 code.
- #
- set(CMAKE_OSX_ARCHITECTURES "x86_64;i386")
- endif()
-endif()
-
-#
# Additional capture modules.
#
option(DISABLE_USB "Disable USB sniffing support" OFF)
@@ -233,7 +156,7 @@ option(DISABLE_RDMA "Disable RDMA sniffing support" OF
option(DISABLE_DAG "Disable Endace DAG card support" OFF)
option(DISABLE_SEPTEL "Disable Septel card support" OFF)
-set(SEPTEL_ROOT "${CMAKE_SOURCE_DIR}/../septel" CACHE PATH "Path to directory with include and lib subdirectories for Septel API")
+set(SEPTEL_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../septel" CACHE PATH "Path to directory with include and lib subdirectories for Septel API")
option(DISABLE_SNF "Disable Myricom SNF support" OFF)
@@ -251,7 +174,7 @@ option(YYDEBUG "Build parser debugging code" OFF)
# Get, parse, format and set pcap's version string from [pcap_root]/VERSION
# for later use.
-
+
# Get MAJOR, MINOR, PATCH & SUFFIX
file(STRINGS ${pcap_SOURCE_DIR}/VERSION
PACKAGE_VERSION
@@ -264,7 +187,7 @@ string(REGEX MATCH "^([0-9]+)" PACKAGE_VERSION_MAJOR "
# Get MAJOR, MINOR & PATCH
string(REGEX MATCH "^([0-9]+.)?([0-9]+.)?([0-9]+)" PACKAGE_VERSION_NOSUFFIX "${PACKAGE_VERSION}")
-if(WIN32)
+if(WIN32)
# Convert PCAP_VERSION_NOSUFFIX to Windows preferred version format
string(REPLACE "." "," PACKAGE_VERSION_PREDLL ${PACKAGE_VERSION_NOSUFFIX})
@@ -289,6 +212,7 @@ include_directories(
include(CheckFunctionExists)
include(CMakePushCheckState)
+include(CheckSymbolExists)
if(WIN32)
@@ -310,6 +234,14 @@ if(WIN32)
cmake_pop_check_state()
endif(PACKET_FOUND)
+ message(STATUS "checking for Npcap's version.h")
+ check_symbol_exists(WINPCAP_PRODUCT_NAME "../../version.h" HAVE_VERSION_H)
+ if(HAVE_VERSION_H)
+ message(STATUS "HAVE version.h")
+ else(HAVE_VERSION_H)
+ message(STATUS "MISSING version.h")
+ endif(HAVE_VERSION_H)
+
endif(WIN32)
if(MSVC)
@@ -344,6 +276,11 @@ include(CheckStructHasMember)
include(CheckTypeSize)
#
+# Tests are a bit expensive with Visual Studio on Windows, so, on
+# Windows, we skip tests for UN*X-only headers and functions.
+#
+
+#
# Header files.
#
check_include_file(inttypes.h HAVE_INTTYPES_H)
@@ -395,12 +332,44 @@ endif(NOT WIN32)
#
check_function_exists(strerror HAVE_STRERROR)
check_function_exists(strerror_r HAVE_STRERROR_R)
-check_function_exists(strerror_s HAVE_STRERROR_S)
+if(HAVE_STRERROR_R)
+ #
+ # We have strerror_r; if we define _GNU_SOURCE, is it a
+ # POSIX-compliant strerror_r() or a GNU strerror_r()?
+ #
+ check_c_source_compiles(
+"#define _GNU_SOURCE
+#include <string.h>
+
+/* Define it GNU-style; that will cause an error if it's not GNU-style */
+extern char *strerror_r(int, char *, size_t);
+
+int
+main(void)
+{
+ return 0;
+}
+"
+ HAVE_GNU_STRERROR_R)
+ if(NOT HAVE_GNU_STRERROR_R)
+ set(HAVE_POSIX_STRERROR_R YES)
+ endif(NOT HAVE_GNU_STRERROR_R)
+else(HAVE_STRERROR_R)
+ #
+ # We don't have strerror_r; do we have strerror_s?
+ #
+ check_function_exists(strerror_s HAVE_STRERROR_S)
+endif(HAVE_STRERROR_R)
check_function_exists(strlcpy HAVE_STRLCPY)
check_function_exists(strlcat HAVE_STRLCAT)
check_function_exists(snprintf HAVE_SNPRINTF)
check_function_exists(vsnprintf HAVE_VSNPRINTF)
+check_function_exists(asprintf HAVE_ASPRINTF)
+check_function_exists(vasprintf HAVE_VASPRINTF)
check_function_exists(strtok_r HAVE_STRTOK_R)
+if(NOT WIN32)
+ check_function_exists(vsyslog HAVE_VSYSLOG)
+endif()
#
# These tests are for network applications that need socket functions
@@ -429,7 +398,6 @@ check_function_exists(strtok_r HAVE_STRTOK_R)
#
set(PCAP_LINK_LIBRARIES "")
include(CheckLibraryExists)
-include(CheckSymbolExists)
if(WIN32)
#
# We need winsock2.h and ws2tcpip.h.
@@ -865,11 +833,61 @@ set(PROJECT_SOURCE_LIST_C
)
if(WIN32)
- set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/win_snprintf.c)
+ #
+ # For now, we assume we don't have snprintf() or that it's not one
+ # that behaves enough like C99's snprintf() for our purposes (i.e.,
+ # it doesn't null-terminate the string if it truncates it to fit in
+ # the buffer), so we have to provide our own (a wrapper around
+ # _snprintf() that null-terminates the buffer).
+ #
+ # We also assume we don't have asprintf(), and provide an implementation
+ # that uses _vscprintf() to determine how big the string needs to be.
+ #
+ set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C}
+ missing/win_snprintf.c missing/win_asprintf.c)
else()
+ #
+ # Either:
+ #
+ # we have snprintf() and vsnprintf(), and have asprintf() and
+ # vasprintf();
+ #
+ # we have snprintf() and vsnprintf(), but don't have asprintf()
+ # or vasprintf();
+ #
+ # we have neither snprintf() nor vsnprintf(), and don't have
+ # asprintf() or vasprintf(), either.
+ #
+ # We assume that if we have asprintf() we have vasprintf(), as well
+ # as snprintf() and vsnprintf(), and that if we have snprintf() we
+ # have vsnprintf().
+ #
+ # For the first case, we don't need any replacement routines.
+ # For the second case, we need replacement asprintf()/vasprintf()
+ # routines.
+ # For the third case, we need replacement snprintf()/vsnprintf() and
+ # asprintf()/vasprintf() routines.
+ #
if(NOT HAVE_SNPRINTF)
+ #
+ # We assume we have none of them; missing/snprintf.c supplies
+ # all of them.
+ #
set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/snprintf.c)
- endif(NOT HAVE_SNPRINTF)
+ elif(NOT HAVE_ASPRINTF)
+ #
+ # We assume we have snprintf()/vsnprintf() but lack
+ # asprintf()/vasprintf(); missing/asprintf.c supplies
+ # the latter (using vsnprintf()).
+ #
+ set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/asprintf.c)
+ endif()
+ if(NOT HAVE_STRLCAT)
+ set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/strlcat.c)
+ endif(NOT HAVE_STRLCAT)
+ if(NOT HAVE_STRLCPY)
+ set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/strlcpy.c)
+ endif(NOT HAVE_STRLCPY)
if(NOT HAVE_STRTOK_R)
set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/strtok_r.c)
endif(NOT HAVE_STRTOK_R)
@@ -931,13 +949,16 @@ else()
# as it's a Linux, it should use packet sockets,
# instead.
#
- #
# We need:
#
# sys/types.h, because FreeBSD 10's net/bpf.h
# requires that various BSD-style integer types
# be defined;
#
+ # sys/time.h, because AIX 5.2 and 5.3's net/bpf.h
+ # doesn't include it but does use struct timeval
+ # in ioctl definitions;
+ #
# sys/ioctl.h and, if we have it, sys/ioccom.h,
# because net/bpf.h defines ioctls;
#
@@ -952,9 +973,9 @@ else()
# of those headers itself.
#
if(HAVE_SYS_IOCCOM_H)
- check_symbol_exists(BIOCSETIF "sys/types.h;sys/ioctl.h;sys/socket.h;sys/ioccom.h;net/bpf.h;net/if.h" BPF_H_DEFINES_BIOCSETIF)
+ check_symbol_exists(BIOCSETIF "sys/types.h;sys/time.h;sys/ioctl.h;sys/socket.h;sys/ioccom.h;net/bpf.h;net/if.h" BPF_H_DEFINES_BIOCSETIF)
else(HAVE_SYS_IOCCOM_H)
- check_symbol_exists(BIOCSETIF "sys/types.h;sys/ioctl.h;sys/socket.h;net/bpf.h;net/if.h" BPF_H_DEFINES_BIOCSETIF)
+ check_symbol_exists(BIOCSETIF "sys/types.h;sys/time.h;sys/ioctl.h;sys/socket.h;net/bpf.h;net/if.h" BPF_H_DEFINES_BIOCSETIF)
endif(HAVE_SYS_IOCCOM_H)
endif(HAVE_NET_BPF_H)
check_include_file(net/pfilt.h HAVE_NET_PFILT_H)
@@ -1436,7 +1457,28 @@ if(NOT DISABLE_DBUS)
set(PCAP_SUPPORT_DBUS TRUE)
set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} pcap-dbus.c)
include_directories(${DBUS_INCLUDE_DIRS})
- set(PCAP_LINK_LIBRARIES ${PCAP_LINK_LIBRARIES} ${DBUS_LIBRARIES})
+
+ #
+ # This "helpfully" supplies DBUS_LIBRARIES as a bunch of
+ # library names - not paths - and DBUS_LIBRARY_DIRS as
+ # a bunch of directories.
+ #
+ # CMake *really* doesn't like the notion of specifying "here are
+ # the directories in which to look for libraries" except in
+ # find_library() calls; it *really* prefers using full paths to
+ # library files, rather than library names.
+ #
+ # Find the libraries and add their full paths.
+ #
+ set(DBUS_LIBRARY_FULLPATHS)
+ foreach(_lib IN LISTS DBUS_LIBRARIES)
+ #
+ # Try to find this library, so we get its full path.
+ #
+ find_library(_libfullpath ${_lib} HINTS ${DBUS_LIBRARY_DIRS})
+ list(APPEND DBUS_LIBRARY_FULLPATHS ${_libfullpath})
+ endforeach()
+ set(PCAP_LINK_LIBRARIES ${PCAP_LINK_LIBRARIES} ${DBUS_LIBRARY_FULLPATHS})
endif(DBUS_FOUND)
endif(NOT DISABLE_DBUS)
@@ -1499,7 +1541,7 @@ if(NOT DISABLE_DAG)
endif()
endif()
endif()
-endif()
+endif()
# Check for Septel card support.
set(PROJECT_EXTERNAL_OBJECT_LIST "")
@@ -1521,7 +1563,7 @@ if(NOT DISABLE_SEPTEL)
set(PROJECT_EXTERNAL_OBJECT_LIST ${PROJECT_EXTERNAL_OBJECT_LIST} "${SEPTEL_ROOT}/asciibin.o ${SEPTEL_ROOT}/bit2byte.o ${SEPTEL_ROOT}/confirm.o ${SEPTEL_ROOT}/fmtmsg.o ${SEPTEL_ROOT}/gct_unix.o ${SEPTEL_ROOT}/hqueue.o ${SEPTEL_ROOT}/ident.o ${SEPTEL_ROOT}/mem.o ${SEPTEL_ROOT}/pack.o ${SEPTEL_ROOT}/parse.o ${SEPTEL_ROOT}/pool.o ${SEPTEL_ROOT}/sdlsig.o ${SEPTEL_ROOT}/strtonum.o ${SEPTEL_ROOT}/timer.o ${SEPTEL_ROOT}/trace.o")
set(HAVE_SEPTEL_API TRUE)
endif()
-endif()
+endif()
# Check for Myricom SNF support.
if(NOT DISABLE_SNF)
@@ -1542,7 +1584,7 @@ if(NOT DISABLE_SNF)
set(HAVE_SNF_API TRUE)
set(PCAP_LINK_LIBRARIES ${PCAP_LINK_LIBRARIES} ${SNF_LIBRARIES})
endif()
-endif()
+endif()
# Check for Riverbed TurboCap support.
if(NOT DISABLE_TC)
@@ -1563,7 +1605,7 @@ if(NOT DISABLE_TC)
set(HAVE_TC_API TRUE)
set(PCAP_LINK_LIBRARIES "${PCAP_LINK_LIBRARIES} ${TC_LIBRARIES} ${CMAKE_USE_PTHREADS_INIT} stdc++")
endif()
-endif()
+endif()
#
# Remote capture support.
@@ -1582,7 +1624,7 @@ if(ENABLE_REMOTE)
# the check.
#
cmake_push_check_state()
- set(CMAKE_REQUIRED_INCLUDES ${CMAKE_SOURCE_DIR})
+ set(CMAKE_REQUIRED_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR})
check_struct_has_member("struct msghdr" msg_control "ftmacros.h;sys/socket.h" HAVE_STRUCT_MSGHDR_MSG_CONTROL)
check_struct_has_member("struct msghdr" msg_flags "ftmacros.h;sys/socket.h" HAVE_STRUCT_MSGHDR_MSG_FLAGS)
cmake_pop_check_state()
@@ -1597,7 +1639,7 @@ endif(ENABLE_REMOTE)
#
# Check and add warning options if we have a .devel file.
#
-if(EXISTS ${CMAKE_SOURCE_DIR}/.devel OR EXISTS ${CMAKE_BINARY_DIR}/.devel)
+if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.devel OR EXISTS ${CMAKE_BINARY_DIR}/.devel)
#
# Warning options.
#
@@ -1808,10 +1850,12 @@ set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR
#
# Assume, by default, no support for shared libraries and V7/BSD
-# convention for man pages (file formats in section 5, miscellaneous
-# info in section 7, administrative commands and daemons in section 8).
+# convention for man pages (devices in section 4, file formats in
+# section 5, miscellaneous info in section 7, administrative commands
+# and daemons in section 8). Individual cases can override this.
# Individual cases can override this.
#
+set(MAN_DEVICES 4)
set(MAN_FILE_FORMATS 5)
set(MAN_MISC_INFO 7)
set(MAN_ADMIN_COMMANDS 8)
@@ -1869,6 +1913,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "OSF1")
#
set(MAN_FILE_FORMATS 4)
set(MAN_MISC_INFO 5)
+ set(MAN_DEVICES 7)
elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_VERSION MATCHES "5[.][0-9.]*")
#
# SunOS 5.x.
@@ -1892,6 +1937,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SY
set(MAN_ADMIN_COMMANDS 1m)
set(MAN_FILE_FORMATS 4)
set(MAN_MISC_INFO 5)
+ set(MAN_DEVICES 7D)
endif()
endif()
@@ -1944,6 +1990,16 @@ if(BUILD_SHARED_LIBS)
add_dependencies(${LIBRARY_NAME} SerializeTarget)
set_target_properties(${LIBRARY_NAME} PROPERTIES
COMPILE_DEFINITIONS BUILDING_PCAP)
+ #
+ # No matter what the library is called - it might be called "wpcap"
+ # in a Windows build - the symbol to define to indicate that we're
+ # building the library, rather than a program using the library,
+ # and thus that we're exporting functions defined in our public
+ # header files, rather than importing those functions, is
+ # pcap_EXPORTS.
+ #
+ set_target_properties(${LIBRARY_NAME} PROPERTIES
+ DEFINE_SYMBOL pcap_EXPORTS)
endif(BUILD_SHARED_LIBS)
add_library(${LIBRARY_NAME}_static STATIC
@@ -1982,7 +2038,7 @@ if(WIN32)
# For compatibility, build the shared library without the "lib" prefix on
# MinGW as well.
#
- set_target_properties(${LIBRARY_NAME} PROPERTIES
+ set_target_properties(${LIBRARY_NAME} PROPERTIES
PREFIX ""
OUTPUT_NAME "${LIBRARY_NAME}"
)
@@ -2020,6 +2076,118 @@ if(NOT C_ADDITIONAL_FLAGS STREQUAL "")
set_target_properties(${LIBRARY_NAME}_static PROPERTIES COMPILE_FLAGS ${C_ADDITIONAL_FLAGS})
endif()
+#
+# On macOS, build libpcap for the appropriate architectures, if
+# CMAKE_OSX_ARCHITECTURES isn't set (if it is, let that control
+# the architectures for which to build it).
+#
+if(APPLE AND "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "")
+ #
+ # Get the major version of Darwin.
+ #
+ string(REGEX MATCH "^([0-9]+)" SYSTEM_VERSION_MAJOR "${CMAKE_SYSTEM_VERSION}")
+
+ if(SYSTEM_VERSION_MAJOR LESS 8)
+ #
+ # Pre-Tiger. Build only for 32-bit PowerPC.
+ #
+ set(OSX_LIBRARY_ARCHITECTURES "ppc")
+ elseif(SYSTEM_VERSION_MAJOR EQUAL 8)
+ #
+ # Tiger. Is this prior to, or with, Intel support?
+ #
+ # Get the minor version of Darwin.
+ #
+ string(REPLACE "${SYSTEM_VERSION_MAJOR}." "" SYSTEM_MINOR_AND_PATCH_VERSION ${CMAKE_SYSTEM_VERSION})
+ string(REGEX MATCH "^([0-9]+)" SYSTEM_VERSION_MINOR "${SYSTEM_MINOR_AND_PATCH_VERSION}")
+ if(SYSTEM_VERSION_MINOR LESS 4)
+ #
+ # Prior to Intel support. Build for 32-bit
+ # PowerPC and 64-bit PowerPC, with 32-bit PowerPC
+ # first. (I'm guessing that's what Apple does.)
+ #
+ set(OSX_LIBRARY_ARCHITECTURES "ppc;ppc64")
+ elseif(SYSTEM_VERSION_MINOR LESS 7)
+ #
+ # With Intel support but prior to x86-64 support.
+ # Build for 32-bit PowerPC, 64-bit PowerPC, and 32-bit x86,
+ # with 32-bit PowerPC first.
+ # (I'm guessing that's what Apple does.)
+ #
+ set(OSX_LIBRARY_ARCHITECTURES "ppc;ppc64;i386")
+ else()
+ #
+ # With Intel support including x86-64 support.
+ # Build for 32-bit PowerPC, 64-bit PowerPC, 32-bit x86,
+ # and x86-64, with 32-bit PowerPC first.
+ # (I'm guessing that's what Apple does.)
+ #
+ set(OSX_LIBRARY_ARCHITECTURES "ppc;ppc64;i386;x86_64")
+ endif()
+ elseif(SYSTEM_VERSION_MAJOR EQUAL 9)
+ #
+ # Leopard. Build for 32-bit PowerPC, 64-bit
+ # PowerPC, 32-bit x86, and x86-64, with 32-bit PowerPC
+ # first. (That's what Apple does.)
+ #
+ set(OSX_LIBRARY_ARCHITECTURES "ppc;ppc64;i386;x86_64")
+ elseif(SYSTEM_VERSION_MAJOR EQUAL 10)
+ #
+ # Snow Leopard. Build for x86-64, 32-bit x86, and
+ # 32-bit PowerPC, with x86-64 first. (That's
+ # what Apple does, even though Snow Leopard
+ # doesn't run on PPC, so PPC libpcap runs under
+ # Rosetta, and Rosetta doesn't support BPF
+ # ioctls, so PPC programs can't do live
+ # captures.)
+ #
+ set(OSX_LIBRARY_ARCHITECTURES "x86_64;i386;ppc")
+ else()
+ #
+ # Post-Snow Leopard. Build for x86-64 and 32-bit x86,
+ # with x86-64 first. (That's what Apple does)
+ # XXX - update if and when Apple drops support
+ # for 32-bit x86 code and if and when Apple adds
+ # ARM-based Macs. (You're on your own for iOS etc.)
+ #
+ # XXX - check whether we *can* build for i386 and, if not,
+ # suggest that the user install the /usr/include headers if
+ # they want to build fat.
+ #
+ cmake_push_check_state()
+ set(CMAKE_REQUIRED_FLAGS "-arch i386")
+ check_c_source_compiles(
+"int
+main(void)
+{
+ return 0;
+}
+"
+ X86_32_BIT_SUPPORTED)
+ cmake_pop_check_state()
+ if(X86_32_BIT_SUPPORTED)
+ set(OSX_LIBRARY_ARCHITECTURES "x86_64;i386")
+ else()
+ set(OSX_LIBRARY_ARCHITECTURES "x86_64")
+ if(SYSTEM_VERSION_MAJOR LESS 18)
+ #
+ # Pre-Mojave; the command-line tools should be sufficient to
+ # enable 32-bit x86 builds.
+ #
+ message(WARNING "Compiling for 32-bit x86 gives an error; try installing the command-line tools")
+ else()
+ message(WARNING "Compiling for 32-bit x86 gives an error; try installing the command-line tools and, after that, installing the /usr/include headers from the /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg package")
+ endif()
+ endif()
+ endif()
+ if(BUILD_SHARED_LIBS)
+ set_target_properties(${LIBRARY_NAME} PROPERTIES
+ OSX_ARCHITECTURES "${OSX_LIBRARY_ARCHITECTURES}")
+ endif(BUILD_SHARED_LIBS)
+ set_target_properties(${LIBRARY_NAME}_static PROPERTIES
+ OSX_ARCHITECTURES "${OSX_LIBRARY_ARCHITECTURES}")
+endif()
+
######################################
# Write out the config.h file
######################################
@@ -2079,6 +2247,7 @@ set(MAN3PCAP_EXPAND
pcap_list_tstamp_types.3pcap.in
pcap_open_dead.3pcap.in
pcap_open_offline.3pcap.in
+ pcap_set_immediate_mode.3pcap.in
pcap_set_tstamp_precision.3pcap.in
pcap_set_tstamp_type.3pcap.in
)
@@ -2114,9 +2283,8 @@ set(MAN3PCAP_NOEXPAND
pcap_open_live.3pcap
pcap_set_buffer_size.3pcap
pcap_set_datalink.3pcap
- pcap_set_immediate_mode.3pcap
pcap_set_promisc.3pcap
- pcap_set_protocol.3pcap
+ pcap_set_protocol_linux.3pcap
pcap_set_rfmon.3pcap
pcap_set_snaplen.3pcap
pcap_set_timeout.3pcap
@@ -2179,11 +2347,13 @@ if(WIN32)
endif(NOT MINGW)
endif(MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8)
else(WIN32)
- install(TARGETS ${LIBRARY_NAME} ${LIBRARY_NAME_STATIC} DESTINATION lib)
+ install(TARGETS ${LIBRARY_NAME} ${LIBRARY_NAME_STATIC} DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
endif(WIN32)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/pcap/ DESTINATION include/pcap)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pcap.h DESTINATION include)
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pcap-bpf.h DESTINATION include)
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pcap-namedb.h DESTINATION include)
# On UN*X, and on Windows when not using MSVC, generate libpcap.pc and
# pcap-config and process man pages and arrange that they be installed.
@@ -2223,8 +2393,8 @@ if(NOT MSVC)
foreach(LIB ${PCAP_LINK_LIBRARIES})
set(LIBS "${LIBS} -l${LIB}")
endforeach(LIB)
- configure_file(${CMAKE_SOURCE_DIR}/pcap-config.in ${CMAKE_CURRENT_BINARY_DIR}/pcap-config @ONLY)
- configure_file(${CMAKE_SOURCE_DIR}/libpcap.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libpcap.pc @ONLY)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcap-config.in ${CMAKE_CURRENT_BINARY_DIR}/pcap-config @ONLY)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpcap.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libpcap.pc @ONLY)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/pcap-config DESTINATION bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpcap.pc DESTINATION lib/pkgconfig)
@@ -2236,17 +2406,17 @@ if(NOT MSVC)
#
set(MAN1 "")
foreach(MANPAGE ${MAN1_NOEXPAND})
- set(MAN1 ${MAN1} ${CMAKE_SOURCE_DIR}/${MANPAGE})
+ set(MAN1 ${MAN1} ${CMAKE_CURRENT_SOURCE_DIR}/${MANPAGE})
endforeach(MANPAGE)
install(FILES ${MAN1} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
set(MAN3PCAP "")
foreach(MANPAGE ${MAN3PCAP_NOEXPAND})
- set(MAN3PCAP ${MAN3PCAP} ${CMAKE_SOURCE_DIR}/${MANPAGE})
+ set(MAN3PCAP ${MAN3PCAP} ${CMAKE_CURRENT_SOURCE_DIR}/${MANPAGE})
endforeach(MANPAGE)
foreach(TEMPLATE_MANPAGE ${MAN3PCAP_EXPAND})
string(REPLACE ".in" "" MANPAGE ${TEMPLATE_MANPAGE})
- configure_file(${CMAKE_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY)
set(MAN3PCAP ${MAN3PCAP} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE})
endforeach(TEMPLATE_MANPAGE)
install(FILES ${MAN3PCAP} DESTINATION ${CMAKE_INSTALL_MANDIR}/man3)
@@ -2270,7 +2440,7 @@ if(NOT MSVC)
set(MANFILE "")
foreach(TEMPLATE_MANPAGE ${MANFILE_EXPAND})
string(REPLACE ".manfile.in" ".${MAN_FILE_FORMATS}" MANPAGE ${TEMPLATE_MANPAGE})
- configure_file(${CMAKE_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY)
set(MANFILE ${MANFILE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE})
endforeach(TEMPLATE_MANPAGE)
install(FILES ${MANFILE} DESTINATION ${CMAKE_INSTALL_MANDIR}/man${MAN_FILE_FORMATS})
@@ -2278,7 +2448,7 @@ if(NOT MSVC)
set(MANMISC "")
foreach(TEMPLATE_MANPAGE ${MANMISC_EXPAND})
string(REPLACE ".manmisc.in" ".${MAN_MISC_INFO}" MANPAGE ${TEMPLATE_MANPAGE})
- configure_file(${CMAKE_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY)
set(MANMISC ${MANMISC} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE})
endforeach(TEMPLATE_MANPAGE)
install(FILES ${MANMISC} DESTINATION ${CMAKE_INSTALL_MANDIR}/man${MAN_MISC_INFO})
Copied: stable/11/contrib/libpcap/CONTRIBUTING.md (from r355988, head/contrib/libpcap/CONTRIBUTING.md)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/11/contrib/libpcap/CONTRIBUTING.md Sat Jan 4 00:44:49 2020 (r356341, copy of r355988, head/contrib/libpcap/CONTRIBUTING.md)
@@ -0,0 +1,29 @@
+Guidelines for contributing
+===========================
+
+To report a security issue (segfault, buffer overflow, infinite loop, arbitrary
+code execution etc) please send an e-mail to security at tcpdump.org, do not use
+the bug tracker!
+
+To report a non-security problem (failure to compile, failure to capture packets
+properly, missing support for a network interface type or DLT) please check
+first that it reproduces with the latest stable release of libpcap. If it does,
+please check that the problem reproduces with the current git master branch of
+libpcap. If it does (and it is not a security-related problem, otherwise see
+above), please navigate to https://github.com/the-tcpdump-group/libpcap/issues
+and check if the problem has already been reported. If it has not, please open
+a new issue and provide the following details:
+
+* libpcap version (e.g. from tcpdump --version)
+* operating system name and version and any other details that may be relevant
+ (uname -a, compiler name and version, CPU type etc.)
+* configure flags if any were used
+* statement of the problem
+* steps to reproduce
+
+Please note that if you know exactly how to solve the problem and the solution
+would not be too intrusive, it would be best to contribute some development time
+and open a pull request instead.
+
+Still not sure how to do? Feel free to [subscribe](https://www.tcpdump.org/#mailing-lists)
+to the mailing list tcpdump-workers at lists.tcpdump.org and ask!
Modified: stable/11/contrib/libpcap/CREDITS
==============================================================================
--- stable/11/contrib/libpcap/CREDITS Sat Jan 4 00:41:22 2020 (r356340)
+++ stable/11/contrib/libpcap/CREDITS Sat Jan 4 00:44:49 2020 (r356341)
@@ -1,21 +1,18 @@
-This file lists people who have contributed to libpcap:
+This file lists people who have contributed to libpcap.
-The current maintainers:
- Bill Fenner <fenner at research dot att dot com>
+The current maintainers (in alphabetical order):
Denis Ovsienko <denis at ovsienko dot info>
- Fulvio Risso <risso at polito dot it>
+ Francois-Xavier Le Bail <devel dot fx dot lebail at orange dot fr>
Guy Harris <guy at alum dot mit dot edu>
- Hannes Gredler <hannes at juniper dot net>
Michael Richardson <mcr at sandelman dot ottawa dot on dot ca>
- Francois-Xavier Le Bail <fx dot lebail at yahoo dot com>
-Additional people who have contributed patches:
-
+Additional people who have contributed patches (in alphabetical order):
Akos Vandra <axos88 at gmail dot com>
Alan Bawden <Alan at LCS dot MIT dot EDU>
Albert Chin <china at thewrittenword dot com>
Alexander 'Leo' Bergolth <Leo dot Bergolth at wu-wien dot ac dot at>
Alexey Kuznetsov <kuznet at ms2 dot inr dot ac dot ru>
+ Ali Abdulkadir <autostart dot ini at gmail dot com>
Alon Bar-Lev <alonbl at sourceforge dot net>
Andres Perera <andres dot p at zoho dot com>
Andrew Brown <atatat at atatdot dot net>
@@ -62,6 +59,7 @@ Additional people who have contributed patches:
Gabor Tatarka <gabor dot tatarka at ericsson dot com>
Garrett Cooper <yaberauneya at sourceforge dot net>
George Neville-Neil <gnn at freebsd dot org>
+ Gerard Garcia <nouboh at gmail dot com>
Gianluca Varenni <gianluca dot varenni at gmail dot com>
Gilbert Hoyek <gil_hoyek at hotmail dot com>
Gisle Vanem <gvanem at yahoo dot no>
@@ -99,6 +97,7 @@ Additional people who have contributed patches:
Koryn Grant <koryn at endace dot com>
Kris Katterjohn <katterjohn at gmail dot com>
Krzysztof Halasa <khc at pm dot waw dot pl>
+ Lennert Buytenhek <buytenh at wantstofly dot org>
Lorenzo Cavallaro <sullivan at sikurezza dot org>
Loris Degioanni <loris at netgroup-serv dot polito dot it>
Love Hörnquist-Åstrand <lha at stacken dot kth dot se>
@@ -114,6 +113,7 @@ Additional people who have contributed patches:
Márton Németh <nm127 at freemail dot hu>
Matthew Luckie <mjl at luckie dot org dot nz>
Max Laier <max at love2party dot net>
+ Michal Kubecek <mkubecek at suse dot cz>
Michal Labedzki <michal dot labedzki at tieto dot com>
Michal Sekletar <msekleta at redhat dot com>
Mike Frysinger <vapier at gmail dot com>
@@ -129,7 +129,7 @@ Additional people who have contributed patches:
Olaf Kirch <okir at caldera dot de>
Ollie Wild <aaw at users dot sourceforge dot net>
Onno van der Linden <onno at simplex dot nl>
- Paolo Abeni <paolo dot abeni at email dot it>
+ Paolo Abeni <pabeni at redhat dot com>
Patrick Marie <mycroft at virgaria dot org>
Patrick McHardy <kaber at trash not net>
Paul Mundt <lethal at linux-sh dot org>
@@ -145,6 +145,8 @@ Additional people who have contributed patches:
Rick Jones <raj at cup dot hp dot com>
Robert Edmonds <stu-42 at sourceforge dot net>
Roberto Mariani <jelot-tcpdump at jelot dot it>
+ Rongxi Li <rongxi dot li at chaitin dot com>
+ Roland Dreier <roland at purestorage dot com>
Romain Francoise <rfrancoise at debian dot org>
Sagun Shakya <sagun dot shakya at sun dot com>
Scott Barron <sb125499 at ohiou dot edu>
@@ -167,6 +169,7 @@ Additional people who have contributed patches:
Wesley Shields <wxs at FreeBSD dot org>
Xianjie Zhang <xzhang at cup dot hp dot com>
Xin Li <delphij at FreeBSD dot org>
+ Xue Jiang Qing <xuejianqing at star-net dot cn>
Yen Yen Lim
Yoann Vandoorselaere <yoann at prelude-ids dot org>
Yvan Vanhullebus <vanhu at sourceforge dot net>
@@ -176,5 +179,8 @@ The original LBL crew:
Craig Leres
Van Jacobson
-Past maintainers:
- Jun-ichiro itojun Hagino <itojun at iijlab dot net> Also see: http://www.wide.ad.jp/itojun-award/
+Past maintainers (in alphabetical order):
+ Bill Fenner <fenner at research dot att dot com>
+ Fulvio Risso <risso at polito dot it>
+ Hannes Gredler <hannes at gredler dot at>
+ Jun-ichiro itojun Hagino <itojun at iijlab dot net> Also see: http://www.wide.ad.jp/itojun-award/
Copied: stable/11/contrib/libpcap/INSTALL.md (from r355988, head/contrib/libpcap/INSTALL.md)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/11/contrib/libpcap/INSTALL.md Sat Jan 4 00:44:49 2020 (r356341, copy of r355988, head/contrib/libpcap/INSTALL.md)
@@ -0,0 +1,352 @@
+To build libpcap, run "./configure" (a shell script). The configure
+script will determine your system attributes and generate an
+appropriate Makefile from Makefile.in. Next run "make". If everything
+goes well you can su to root and run "make install". However, you need
+not install libpcap if you just want to build tcpdump; just make sure
+the tcpdump and libpcap directory trees have the same parent
+directory.
+
+If configure says:
+
+ configure: warning: cannot determine packet capture interface
+ configure: warning: (see INSTALL for more info)
+
+then your system either does not support packet capture or your system
+does support packet capture but libpcap does not support that
+particular type. (If you have HP-UX, see below.) If your system uses a
+packet capture not supported by libpcap, please send us patches; don't
+forget to include an autoconf fragment suitable for use in
+configure.ac.
+
+It is possible to override the default packet capture type, although
+the circumstance where this works are limited. For example if you have
+installed bpf under SunOS 4 and wish to build a snit libpcap:
+
+ ./configure --with-pcap=snit
+
+Another example is to force a supported packet capture type in the case
+where the configure scripts fails to detect it.
+
+You will need an ANSI C compiler to build libpcap. The configure script
+will abort if your compiler is not ANSI compliant. If this happens, use
+the generally available GNU C compiler (GCC).
+
+You will need either Flex 2.5.31 or later, or a version of Lex
+compatible with it (if any exist), to build libpcap. The configure
+script will abort if there isn't any such program. If you have an older
+version of Flex, or don't have a compatible version of Lex, the current
+version of flex is available at flex.sourceforge.net.
+
+You will need either Bison, Berkeley YACC, or a version of YACC
+compatible with them (if any exist), to build libpcap. The configure
+script will abort if there isn't any such program. If you don't have
+any such program, the current version of Bison can be found at
+http://ftp.gnu.org/gnu/bison/ and the current version of Berkeley YACC
+can be found at http://invisible-island.net/byacc/.
+
+Sometimes the stock C compiler does not interact well with Flex and
+Bison. The list of problems includes undefined references for alloca.
+You can get around this by installing GCC.
+
+If you use Solaris, there is a bug with bufmod(7) that is fixed in
+Solaris 2.3.2 (aka SunOS 5.3.2). Setting a snapshot length with the
+broken bufmod(7) results in data be truncated from the FRONT of the
+packet instead of the end. The work around is to not set a snapshot
+length but this results in performance problems since the entire packet
+is copied to user space. If you must run an older version of Solaris,
+there is a patch available from Sun; ask for bugid 1149065. After
+installing the patch, use "setenv BUFMOD_FIXED" to enable use of
+bufmod(7). However, we recommend you run a more current release of
+Solaris.
+
+If you use the SPARCompiler, you must be careful to not use the
+/usr/ucb/cc interface. If you do, you will get bogus warnings and
+perhaps errors. Either make sure your path has /opt/SUNWspro/bin
+before /usr/ucb or else:
+
+ setenv CC /opt/SUNWspro/bin/cc
+
+before running configure. (You might have to do a "make distclean"
+if you already ran configure once).
+
+If you are trying to do packet capture with a FORE ATM card, you may or
+may not be able to. They usually only release their driver in object
+code so unless their driver supports packet capture, there's not much
+libpcap can do.
+
+If you get an error like:
+
+ tcpdump: recv_ack: bind error 0x???
+
+when using DLPI, look for the DL_ERROR_ACK error return values, usually
+in /usr/include/sys/dlpi.h, and find the corresponding value.
+
+Under {DEC OSF/1, Digital UNIX, Tru64 UNIX}, packet capture must be
+enabled before it can be used. For instructions on how to enable packet
+filter support, see:
+
+ ftp://ftp.digital.com/pub/Digital/dec-faq/Digital-UNIX
+
+Look for the "How do I configure the Berkeley Packet Filter and capture
+tcpdump traces?" item.
+
+Once you enable packet filter support, your OSF system will support bpf
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-stable
mailing list