Follow up on earlier commits (
0c21cb2,
341acb8,
f4840dc,
69f105d) and
try to fix the last remaining issue.
In pcap/bpf.h do not try to duplicate the contents of pcap-types.h, it
was a bad idea of mine because in a public header HAVE_SYS_TYPES_H is
out of place. Instead of that in pcap/bpf.h trust the including file
to have unsiged integer types defined (usually by means of including
either pcap/pcap.h or pcap-types.h). Include pcap-types.h not from
gencode.c, but from gencode.h, so the latter can include pcap/bpf.h and
itself can be included early. Add a comment.
#include <config.h>
#endif
-#include <pcap-types.h>
#ifdef _WIN32
#include <ws2tcpip.h>
#else
#define gencode_h
#include "pcap/funcattrs.h"
+/*
+ * pcap/bpf.h (a public header) needs u_char, u_short and u_int, which can be
+ * made available via either pcap-types.h (a private header) or pcap/pcap.h
+ * (a public header), none of which pcap/bpf.h includes. Include the private
+ * header to keep things simple, this way this private header should compile
+ * even if included early from another file.
+ */
+#include "pcap-types.h"
#include "pcap/bpf.h" /* bpf_u_int32 and BPF_MEMWORDS */
/*
#if !defined(_NET_BPF_H_) && !defined(_NET_BPF_H_INCLUDED) && !defined(_BPF_H_) && !defined(_H_BPF) && !defined(lib_pcap_bpf_h)
#define lib_pcap_bpf_h
-/* u_char, u_short and u_int */
-#if defined(_WIN32)
- #include <winsock2.h>
-#elif defined(HAVE_SYS_TYPES_H)
- #include <sys/types.h>
-#endif
-
#include <pcap/funcattrs.h>
#include <pcap/dlt.h>