libpcap: Make pcap/bpf.h a wrapper around system net/bpf.h
In the past, we modified pcap/pcap.h to include the system net/bpf.h rather than libpcap's own pcap/bpf.h. However, starting around 1.10.2, libpcap requires a few extern functions defined in pcap/bpf.h to build. Simply reverting that local change and pulling in pcap/bpf.h is not a solution, because some ports with '#include <pcap.h>' such as mail/spamd and net/xprobe require the system net/bpf.h to be pulled in. To accommodate both requirements, make pcap/bpf.h a wrapper around the system net/bpf.h, but retain the extern function definitions. This is in preparation for libpcap 1.10.3. Approved by: cy, philip, emaste, delphij (earlier revision) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D38575
This commit is contained in:
parent
86fd0bdba5
commit
6d1c946e91
@ -74,6 +74,18 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* In the past, we modified pcap/pcap.h to include the system net/bpf.h,
|
||||
* rather than this file. However, starting around 1.10.2, libpcap requires
|
||||
* the extern functions defined here to build. Simply reverting that local
|
||||
* change is not a solution, because some ports with '#include <pcap.h>'
|
||||
* such as mail/spamd and net/xprobe require the system net/bpf.h to be
|
||||
* pulled in. To accommodate both requirements, make this header a wrapper
|
||||
* around the system net/bpf.h, but keep the extern function definitions.
|
||||
*/
|
||||
#if defined(__FreeBSD__)
|
||||
#include <net/bpf.h>
|
||||
#else
|
||||
/* BSD style release date */
|
||||
#define BPF_RELEASE 199606
|
||||
|
||||
@ -244,13 +256,17 @@ struct bpf_insn {
|
||||
#define BPF_STMT(code, k) { (u_short)(code), 0, 0, k }
|
||||
#define BPF_JUMP(code, k, jt, jf) { (u_short)(code), jt, jf, k }
|
||||
|
||||
#endif /* defined(__FreeBSD__) */
|
||||
|
||||
PCAP_API int bpf_validate(const struct bpf_insn *, int);
|
||||
PCAP_API u_int bpf_filter(const struct bpf_insn *, const u_char *, u_int, u_int);
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
/*
|
||||
* Number of scratch memory words (for BPF_LD|BPF_MEM and BPF_ST).
|
||||
*/
|
||||
#define BPF_MEMWORDS 16
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -85,7 +85,10 @@
|
||||
#endif /* _WIN32/MSDOS/UN*X */
|
||||
|
||||
#include <pcap/socket.h> /* for SOCKET, as the active-mode rpcap APIs use it */
|
||||
#include <net/bpf.h>
|
||||
|
||||
#ifndef PCAP_DONT_INCLUDE_PCAP_BPF_H
|
||||
#include <pcap/bpf.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user