From: Denis Ovsienko Date: Tue, 21 Jun 2022 13:51:46 +0000 (+0100) Subject: Include properly. X-Git-Url: https://git.tcpdump.org/libpcap/commitdiff_plain/19e2a37731a80d16a612c4263daa7f26b1584d54 Include properly. 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. --- diff --git a/gencode.c b/gencode.c index ea272e17..13db75db 100644 --- a/gencode.c +++ b/gencode.c @@ -23,7 +23,6 @@ #include #endif -#include #ifdef _WIN32 #include #else diff --git a/gencode.h b/gencode.h index 9631dd02..93ca5216 100644 --- a/gencode.h +++ b/gencode.h @@ -23,6 +23,14 @@ #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 */ /* diff --git a/pcap/bpf.h b/pcap/bpf.h index f8132582..a8eb177b 100644 --- a/pcap/bpf.h +++ b/pcap/bpf.h @@ -79,13 +79,6 @@ #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 -#elif defined(HAVE_SYS_TYPES_H) - #include -#endif - #include #include