diff options
author | Guy Harris <guy@alum.mit.edu> | 2017-09-04 00:51:48 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2017-09-04 00:51:48 -0700 |
commit | a5514e389019adda62f2d34dd02555f95af0f6d9 (patch) | |
tree | 37eb924a593af1ea6bdf2705aad453b6db7ee07c | |
parent | 788b880617318c55db670e533ac3124ea77eafb9 (diff) |
Put the stuff to get the sized integer types defined into pcap-types.h.
Have pcap-types.h arrange to define the intN_t/u_intN_t types, and the
INTn_MAX/UINTn_MAX values, on all platforms, and use it wherever it's
appropriate.
Include it up front in scanner.l, to avoid redefinitions of the
INTn_MAX/UINTn_MAX types.
-rw-r--r-- | Makefile.in | 1 | ||||
-rw-r--r-- | bpf/net/bpf_filter.c | 13 | ||||
-rw-r--r-- | bpf_image.c | 11 | ||||
-rw-r--r-- | etherent.c | 11 | ||||
-rw-r--r-- | gencode.c | 10 | ||||
-rw-r--r-- | optimize.c | 11 | ||||
-rw-r--r-- | pcap-common.c | 11 | ||||
-rw-r--r-- | pcap-stdinc.h | 47 | ||||
-rw-r--r-- | pcap-types.h | 100 | ||||
-rw-r--r-- | pcap.c | 10 | ||||
-rw-r--r-- | savefile.c | 11 | ||||
-rw-r--r-- | scanner.l | 29 | ||||
-rw-r--r-- | sf-pcap-ng.c | 11 | ||||
-rw-r--r-- | sf-pcap.c | 11 |
14 files changed, 132 insertions, 155 deletions
diff --git a/Makefile.in b/Makefile.in index bacf2053..f443711c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -130,6 +130,7 @@ HDR = $(PUBHDR) \ pcap-int.h \ pcap-rpcap.h \ pcap-stdinc.h \ + pcap-types.h \ portability.h \ ppp.h \ rpcap-protocol.h \ diff --git a/bpf/net/bpf_filter.c b/bpf/net/bpf_filter.c index 0ff31f9d..fc63cac0 100644 --- a/bpf/net/bpf_filter.c +++ b/bpf/net/bpf_filter.c @@ -42,21 +42,12 @@ #include <config.h> #endif -#ifdef _WIN32 +#include <pcap-types.h> +#ifdef _WIN32 #include <pcap-stdinc.h> - #else /* _WIN32 */ -#if HAVE_INTTYPES_H -#include <inttypes.h> -#elif HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_SYS_BITYPES_H -#include <sys/bitypes.h> -#endif - #include <sys/param.h> #include <sys/types.h> #include <sys/time.h> diff --git a/bpf_image.c b/bpf_image.c index ec659dc1..392f5d73 100644 --- a/bpf_image.c +++ b/bpf_image.c @@ -23,18 +23,9 @@ #include <config.h> #endif +#include <pcap-types.h> #ifdef _WIN32 #include <pcap-stdinc.h> -#else /* _WIN32 */ -#if HAVE_INTTYPES_H -#include <inttypes.h> -#elif HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_SYS_BITYPES_H -#include <sys/bitypes.h> -#endif -#include <sys/types.h> #endif /* _WIN32 */ #include <stdio.h> @@ -23,18 +23,9 @@ #include <config.h> #endif +#include <pcap-types.h> #ifdef _WIN32 #include <pcap-stdinc.h> -#else /* _WIN32 */ -#if HAVE_INTTYPES_H -#include <inttypes.h> -#elif HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_SYS_BITYPES_H -#include <sys/bitypes.h> -#endif -#include <sys/types.h> #endif /* _WIN32 */ #include <ctype.h> @@ -24,18 +24,10 @@ #include <config.h> #endif +#include <pcap-types.h> #ifdef _WIN32 #include <pcap-stdinc.h> #else /* _WIN32 */ -#if HAVE_INTTYPES_H -#include <inttypes.h> -#elif HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_SYS_BITYPES_H -#include <sys/bitypes.h> -#endif -#include <sys/types.h> #include <sys/socket.h> #endif /* _WIN32 */ @@ -25,18 +25,9 @@ #include <config.h> #endif +#include <pcap-types.h> #ifdef _WIN32 #include <pcap-stdinc.h> -#else /* _WIN32 */ -#if HAVE_INTTYPES_H -#include <inttypes.h> -#elif HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_SYS_BITYPES_H -#include <sys/bitypes.h> -#endif -#include <sys/types.h> #endif /* _WIN32 */ #include <stdio.h> diff --git a/pcap-common.c b/pcap-common.c index 8a34ec85..5fa9b7e5 100644 --- a/pcap-common.c +++ b/pcap-common.c @@ -25,18 +25,9 @@ #include <config.h> #endif +#include <pcap-types.h> #ifdef _WIN32 #include <pcap-stdinc.h> -#else /* _WIN32 */ -#if HAVE_INTTYPES_H -#include <inttypes.h> -#elif HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_SYS_BITYPES_H -#include <sys/bitypes.h> -#endif -#include <sys/types.h> #endif /* _WIN32 */ #include "pcap-int.h" diff --git a/pcap-stdinc.h b/pcap-stdinc.h index a1be6809..9ea1f681 100644 --- a/pcap-stdinc.h +++ b/pcap-stdinc.h @@ -76,51 +76,6 @@ #include <ws2tcpip.h> -#if defined(_MSC_VER) - /* - * MSVC. - */ - #if _MSC_VER >= 1800 - /* - * VS 2013 or newer; we have <inttypes.h>. - */ - #include <inttypes.h> - - #define u_int8_t uint8_t - #define u_int16_t uint16_t - #define u_int32_t uint32_t - #define u_int64_t uint64_t - #else - /* - * Earlier VS; we have to define this stuff ourselves. - */ - #ifndef HAVE_U_INT8_T - typedef unsigned char u_int8_t; - typedef signed char int8_t; - #endif - - #ifndef HAVE_U_INT16_T - typedef unsigned short u_int16_t; - typedef signed short int16_t; - #endif - - #ifndef HAVE_U_INT32_T - typedef unsigned int u_int32_t; - typedef signed int int32_t; - #endif - - #ifndef HAVE_U_INT64_T - #ifdef _MSC_EXTENSIONS - typedef unsigned _int64 u_int64_t; - typedef _int64 int64_t; - #else /* _MSC_EXTENSIONS */ - typedef unsigned long long u_int64_t; - typedef long long int64_t; - #endif - #endif - #endif -#elif defined(__MINGW32__) - #include <stdint.h> -#endif +#include <pcap-types.h> #endif /* pcap_stdinc_h */ diff --git a/pcap-types.h b/pcap-types.h new file mode 100644 index 00000000..7c318d09 --- /dev/null +++ b/pcap-types.h @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2002 - 2005 NetGroup, Politecnico di Torino (Italy) + * Copyright (c) 2005 - 2009 CACE Technologies, Inc. Davis (California) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Politecnico di Torino nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef pcap_types_h +#define pcap_types_h + +/* + * Get the integer types we use defined, by hook or by crook. + */ +#if defined(_MSC_VER) + /* + * Target is Windows, compiler is MSVC. + */ + #if _MSC_VER >= 1800 + /* + * VS 2013 or newer; we have <inttypes.h>. + */ + #include <inttypes.h> + + #define u_int8_t uint8_t + #define u_int16_t uint16_t + #define u_int32_t uint32_t + #define u_int64_t uint64_t + #else + /* + * Earlier VS; we have to define this stuff ourselves. + */ + #ifndef HAVE_U_INT8_T + typedef unsigned char u_int8_t; + typedef signed char int8_t; + #endif + + #ifndef HAVE_U_INT16_T + typedef unsigned short u_int16_t; + typedef signed short int16_t; + #endif + + #ifndef HAVE_U_INT32_T + typedef unsigned int u_int32_t; + typedef signed int int32_t; + #endif + + #ifndef HAVE_U_INT64_T + #ifdef _MSC_EXTENSIONS + typedef unsigned _int64 u_int64_t; + typedef _int64 int64_t; + #else /* _MSC_EXTENSIONS */ + typedef unsigned long long u_int64_t; + typedef long long int64_t; + #endif + #endif + #endif +#elif defined(__MINGW32__) + /* + * Target is Windows, compiler is MinGW. + */ + #include <stdint.h> +#elif !defined(_WIN32) + /* + * Target is UN*X or MS-DOS. + */ + #if HAVE_INTTYPES_H + #include <inttypes.h> + #elif HAVE_STDINT_H + #include <stdint.h> + #endif + #ifdef HAVE_SYS_BITYPES_H + #include <sys/bitypes.h> + #endif + #include <sys/types.h> +#endif + +#endif /* pcap_types_h */ @@ -35,19 +35,11 @@ #include <config.h> #endif +#include <pcap-types.h> #ifdef _WIN32 #include <pcap-stdinc.h> #else /* _WIN32 */ -#if HAVE_INTTYPES_H -#include <inttypes.h> -#elif HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_SYS_BITYPES_H -#include <sys/bitypes.h> -#endif #include <sys/param.h> -#include <sys/types.h> #ifndef MSDOS #include <sys/file.h> #endif @@ -32,18 +32,9 @@ #include <config.h> #endif +#include <pcap-types.h> #ifdef _WIN32 #include <pcap-stdinc.h> -#else /* _WIN32 */ -#if HAVE_INTTYPES_H -#include <inttypes.h> -#elif HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_SYS_BITYPES_H -#include <sys/bitypes.h> -#endif -#include <sys/types.h> #endif /* _WIN32 */ #include <errno.h> @@ -3,6 +3,25 @@ #ifdef HAVE_CONFIG_H #include <config.h> #endif + +/* + * Must come first to avoid warnings on Windows. + * + * Flex-generated scanners may only include <inttypes.h> if __STDC_VERSION__ + * is defined with a value >= 199901, meaning "full C99", and MSVC may not + * define it with that value, because it isn't 100% C99-compliant, even + * though it has an <inttypes.h> capable of defining everything the Flex + * scanner needs. + * + * We, however, will include it if we know we have an MSVC version that has + * it; this means that we may define the INTn_MAX and UINTn_MAX values in + * scanner.c, and then include <stdint.h>, which may define them differently + * (same value, but different string of characters), causing compiler warnings. + * + * If we include it here, and they're defined, that'll prevent scanner.c + * from defining them. + */ +#include <pcap-types.h> } /* @@ -65,16 +84,6 @@ #ifdef _WIN32 #include <pcap-stdinc.h> -#else - #if HAVE_INTTYPES_H - #include <inttypes.h> - #elif HAVE_STDINT_H - #include <stdint.h> - #endif - #ifdef HAVE_SYS_BITYPES_H - #include <sys/bitypes.h> - #endif - #include <sys/types.h> #endif #include <ctype.h> diff --git a/sf-pcap-ng.c b/sf-pcap-ng.c index 768e96b7..639eed53 100644 --- a/sf-pcap-ng.c +++ b/sf-pcap-ng.c @@ -25,18 +25,9 @@ #include <config.h> #endif +#include <pcap-types.h> #ifdef _WIN32 #include <pcap-stdinc.h> -#else /* _WIN32 */ -#if HAVE_INTTYPES_H -#include <inttypes.h> -#elif HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_SYS_BITYPES_H -#include <sys/bitypes.h> -#endif -#include <sys/types.h> #endif /* _WIN32 */ #include <errno.h> @@ -32,18 +32,9 @@ #include <config.h> #endif +#include <pcap-types.h> #ifdef _WIN32 #include <pcap-stdinc.h> -#else /* _WIN32 */ -#if HAVE_INTTYPES_H -#include <inttypes.h> -#elif HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_SYS_BITYPES_H -#include <sys/bitypes.h> -#endif -#include <sys/types.h> #endif /* _WIN32 */ #include <errno.h> |