aboutsummaryrefslogtreecommitdiffstats
path: root/caputils
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2017-05-11 03:56:44 -0700
committerGuy Harris <guy@alum.mit.edu>2017-05-11 10:57:22 +0000
commit79eab8ca070f978415126f85b0777ab4ab02f0a2 (patch)
tree2e525b1b6adee7397fb80362fc0016a76cb93b5e /caputils
parent871a8a2cccf79fae30c30a99fa21a4fa4dfbae16 (diff)
Force HAVE_REMOTE to be defined when including pcap.h with remote support.
WinPcap made the mistake of having stuff in its public header fines depend on a configuration #define, HAVE_REMOTE; this means that we need to forcibly define it when building with remote capture support. The tip of the libpcap master branch does not have that botch; hopefully future versions of libpcap-for-Windows will be based on that libpcap and thus lack that botch as well. Defining HAVE_REMOTE in config.h is not the right fix, as it makes it look like a *Wireshark* configuration option that code in Wireshark should test, rather than a *WinPcap* configuration option that the pcap.h that ships with the WinPcap SDK should have been changed, as part of the build process, to correctly define or not, so that users of WinPcap don't have to define it themselves. Change-Id: I62d1eca6d3c900d0dcc9fbc011db77f595a86313 Reviewed-on: https://code.wireshark.org/review/21593 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'caputils')
-rw-r--r--caputils/capture-pcap-util-unix.c12
-rw-r--r--caputils/capture-pcap-util.h12
-rw-r--r--caputils/capture_wpcap_packet.c12
3 files changed, 36 insertions, 0 deletions
diff --git a/caputils/capture-pcap-util-unix.c b/caputils/capture-pcap-util-unix.c
index 362317e914..5d57a02797 100644
--- a/caputils/capture-pcap-util-unix.c
+++ b/caputils/capture-pcap-util-unix.c
@@ -26,6 +26,18 @@
#ifdef HAVE_LIBPCAP
+#ifdef HAVE_PCAP_REMOTE
+/*
+ * Force the WinPcap header files to define things required for remote
+ * capture. (Yes, this is q WinPcap bug; if your project has a public
+ * header file that checks or otherwise uses a #define that's defined
+ * by your project's configuration process, and don't ensure that
+ * it's always defined appropriately when that header file is included,
+ * before its first use, you have made a mistake.)
+ */
+#define HAVE_REMOTE
+#endif
+
#include <pcap.h>
#ifdef __APPLE__
diff --git a/caputils/capture-pcap-util.h b/caputils/capture-pcap-util.h
index a5c3825900..87a05e8283 100644
--- a/caputils/capture-pcap-util.h
+++ b/caputils/capture-pcap-util.h
@@ -29,6 +29,18 @@ extern "C" {
#ifdef HAVE_LIBPCAP
+#ifdef HAVE_PCAP_REMOTE
+/*
+ * Force the WinPcap header files to define things required for remote
+ * capture. (Yes, this is q WinPcap bug; if your project has a public
+ * header file that checks or otherwise uses a #define that's defined
+ * by your project's configuration process, and don't ensure that
+ * it's always defined appropriately when that header file is included,
+ * before its first use, you have made a mistake.)
+ */
+#define HAVE_REMOTE
+#endif
+
#include <pcap.h>
#include "capture_opts.h"
diff --git a/caputils/capture_wpcap_packet.c b/caputils/capture_wpcap_packet.c
index 5b3ffc479d..6d1b77cb11 100644
--- a/caputils/capture_wpcap_packet.c
+++ b/caputils/capture_wpcap_packet.c
@@ -30,6 +30,18 @@
#include <glib.h>
#include <gmodule.h>
+#ifdef HAVE_PCAP_REMOTE
+/*
+ * Force the WinPcap header files to define things required for remote
+ * capture. (Yes, this is q WinPcap bug; if your project has a public
+ * header file that checks or otherwise uses a #define that's defined
+ * by your project's configuration process, and don't ensure that
+ * it's always defined appropriately when that header file is included,
+ * before its first use, you have made a mistake.)
+ */
+#define HAVE_REMOTE
+#endif
+
#include <pcap.h>
/* XXX - yes, I know, I should move cppmagic.h to a generic location. */