From owner-svn-src-all@freebsd.org Sat Jan 4 00:44:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7C6091D6441; Sat, 4 Jan 2020 00:44:50 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47qNMk3QxPz4YPL; Sat, 4 Jan 2020 00:44:50 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 70BDD4D1A; Sat, 4 Jan 2020 00:44:50 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0040ioZt057060; Sat, 4 Jan 2020 00:44:50 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0040inJ3057055; Sat, 4 Jan 2020 00:44:49 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202001040044.0040inJ3057055@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Sat, 4 Jan 2020 00:44:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: 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... X-SVN-Group: stable-11 X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in stable/11: contrib/libpcap contrib/libpcap/cmake/Modules contrib/libpcap/doc contrib/libpcap/missing contrib/libpcap/msdos contrib/libpcap/pcap contrib/libpcap/rpcapd contrib/libpcap/testprogs cont... X-SVN-Commit-Revision: 356341 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Jan 2020 00:44:50 -0000 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@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@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@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 + +/* 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@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@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 +The current maintainers (in alphabetical order): Denis Ovsienko - Fulvio Risso + Francois-Xavier Le Bail Guy Harris - Hannes Gredler Michael Richardson - Francois-Xavier Le Bail -Additional people who have contributed patches: - +Additional people who have contributed patches (in alphabetical order): Akos Vandra Alan Bawden Albert Chin Alexander 'Leo' Bergolth Alexey Kuznetsov + Ali Abdulkadir Alon Bar-Lev Andres Perera Andrew Brown @@ -62,6 +59,7 @@ Additional people who have contributed patches: Gabor Tatarka Garrett Cooper George Neville-Neil + Gerard Garcia Gianluca Varenni Gilbert Hoyek Gisle Vanem @@ -99,6 +97,7 @@ Additional people who have contributed patches: Koryn Grant Kris Katterjohn Krzysztof Halasa + Lennert Buytenhek Lorenzo Cavallaro Loris Degioanni Love Hörnquist-Åstrand @@ -114,6 +113,7 @@ Additional people who have contributed patches: Márton Németh Matthew Luckie Max Laier + Michal Kubecek Michal Labedzki Michal Sekletar Mike Frysinger @@ -129,7 +129,7 @@ Additional people who have contributed patches: Olaf Kirch Ollie Wild Onno van der Linden - Paolo Abeni + Paolo Abeni Patrick Marie Patrick McHardy Paul Mundt @@ -145,6 +145,8 @@ Additional people who have contributed patches: Rick Jones Robert Edmonds Roberto Mariani + Rongxi Li + Roland Dreier Romain Francoise Sagun Shakya Scott Barron @@ -167,6 +169,7 @@ Additional people who have contributed patches: Wesley Shields Xianjie Zhang Xin Li + Xue Jiang Qing Yen Yen Lim Yoann Vandoorselaere Yvan Vanhullebus @@ -176,5 +179,8 @@ The original LBL crew: Craig Leres Van Jacobson -Past maintainers: - Jun-ichiro itojun Hagino Also see: http://www.wide.ad.jp/itojun-award/ +Past maintainers (in alphabetical order): + Bill Fenner + Fulvio Risso + Hannes Gredler + Jun-ichiro itojun Hagino 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 ***