=?UTF-8?Q?Andr=C3=A9=20Hentschel=20?=: wpcap: Implement pcap_lib_version.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Aug 7 14:52:28 CDT 2014
Module: wine
Branch: master
Commit: fa67586811765d88d3b4108b3e5b4e51bb07868f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fa67586811765d88d3b4108b3e5b4e51bb07868f
Author: André Hentschel <nerv at dawncrow.de>
Date: Thu Aug 7 00:15:00 2014 +0200
wpcap: Implement pcap_lib_version.
---
configure | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 12 ++++++++++
dlls/wpcap/Makefile.in | 4 ++++
dlls/wpcap/wpcap.c | 31 ++++++++++++++++++++++++
dlls/wpcap/wpcap.spec | 2 +-
include/config.h.in | 3 +++
6 files changed, 115 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index 62e8abc..118fbc4 100755
--- a/configure
+++ b/configure
@@ -676,6 +676,7 @@ XSLT_LIBS
XSLT_CFLAGS
XML2_LIBS
XML2_CFLAGS
+LIBPCAP
X_EXTRA_LIBS
X_LIBS
X_PRE_LIBS
@@ -822,6 +823,7 @@ with_opencl
with_opengl
with_osmesa
with_oss
+with_pcap
with_png
with_pthread
with_sane
@@ -2091,6 +2093,7 @@ Optional Packages:
--without-opengl do not use OpenGL
--without-osmesa do not use the OSMesa library
--without-oss do not use the OSS sound support
+ --without-pcap do not use the Packet Capture library
--without-png do not use PNG
--without-pthread do not use the pthread library
--without-sane do not use SANE (scanner support)
@@ -3322,6 +3325,12 @@ if test "${with_oss+set}" = set; then :
fi
+# Check whether --with-pcap was given.
+if test "${with_pcap+set}" = set; then :
+ withval=$with_pcap; if test "x$withval" = "xno"; then ac_cv_header_pcap_pcap_h=no; fi
+fi
+
+
# Check whether --with-png was given.
if test "${with_png+set}" = set; then :
withval=$with_png;
@@ -6495,6 +6504,7 @@ for ac_header in \
netinet/in_systm.h \
netinet/tcp.h \
netinet/tcp_fsm.h \
+ pcap/pcap.h \
poll.h \
port.h \
process.h \
@@ -10510,6 +10520,60 @@ esac
fi
test "x$ac_cv_lib_OpenCL_clGetPlatformInfo" != xyes && enable_opencl=${enable_opencl:-no}
+if test "$ac_cv_header_pcap_pcap_h" = "yes"
+then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcap_create in -lpcap" >&5
+$as_echo_n "checking for pcap_create in -lpcap... " >&6; }
+if ${ac_cv_lib_pcap_pcap_create+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpcap $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pcap_create ();
+int
+main ()
+{
+return pcap_create ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_pcap_pcap_create=yes
+else
+ ac_cv_lib_pcap_pcap_create=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pcap_pcap_create" >&5
+$as_echo "$ac_cv_lib_pcap_pcap_create" >&6; }
+if test "x$ac_cv_lib_pcap_pcap_create" = xyes; then :
+ LIBPCAP="-lpcap"
+
+fi
+
+fi
+if test "x$ac_cv_lib_pcap_pcap_create" != xyes; then :
+ case "x$with_pcap" in
+ x) as_fn_append wine_notices "|pcap ${notice_platform}development files not found, wpcap won't be supported." ;;
+ xno) ;;
+ *) as_fn_error $? "pcap ${notice_platform}development files not found, wpcap won't be supported.
+This is an error since --with-pcap was requested." "$LINENO" 5 ;;
+esac
+fi
+test "x$ac_cv_lib_pcap_pcap_create" != xyes && enable_wpcap=${enable_wpcap:-no}
+
if test "x$with_xml" != "xno"
then
diff --git a/configure.ac b/configure.ac
index deb6b19..7de7a87 100644
--- a/configure.ac
+++ b/configure.ac
@@ -67,6 +67,8 @@ AC_ARG_WITH(opencl, AS_HELP_STRING([--without-opencl],[do not use OpenCL]),
AC_ARG_WITH(opengl, AS_HELP_STRING([--without-opengl],[do not use OpenGL]))
AC_ARG_WITH(osmesa, AS_HELP_STRING([--without-osmesa],[do not use the OSMesa library]))
AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound support]))
+AC_ARG_WITH(pcap, AS_HELP_STRING([--without-pcap],[do not use the Packet Capture library]),
+ [if test "x$withval" = "xno"; then ac_cv_header_pcap_pcap_h=no; fi])
AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]))
AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]),
[if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi])
@@ -448,6 +450,7 @@ AC_CHECK_HEADERS(\
netinet/in_systm.h \
netinet/tcp.h \
netinet/tcp_fsm.h \
+ pcap/pcap.h \
poll.h \
port.h \
process.h \
@@ -1268,6 +1271,15 @@ WINE_NOTICE_WITH(opencl,[test "x$ac_cv_lib_OpenCL_clGetPlatformInfo" != xyes],
[OpenCL ${notice_platform}development files not found, OpenCL won't be supported.])
test "x$ac_cv_lib_OpenCL_clGetPlatformInfo" != xyes && enable_opencl=${enable_opencl:-no}
+dnl **** Check for libpcap ****
+if test "$ac_cv_header_pcap_pcap_h" = "yes"
+then
+ AC_CHECK_LIB(pcap,pcap_create,[AC_SUBST(LIBPCAP,["-lpcap"])])
+fi
+WINE_NOTICE_WITH(pcap,[test "x$ac_cv_lib_pcap_pcap_create" != xyes],
+ [pcap ${notice_platform}development files not found, wpcap won't be supported.])
+test "x$ac_cv_lib_pcap_pcap_create" != xyes && enable_wpcap=${enable_wpcap:-no}
+
dnl **** Check for libxml2 ****
if test "x$with_xml" != "xno"
diff --git a/dlls/wpcap/Makefile.in b/dlls/wpcap/Makefile.in
index 5841adc..70a0fec 100644
--- a/dlls/wpcap/Makefile.in
+++ b/dlls/wpcap/Makefile.in
@@ -1 +1,5 @@
MODULE = wpcap.dll
+EXTRALIBS = @LIBPCAP@
+
+C_SRCS = \
+ wpcap.c
diff --git a/dlls/wpcap/wpcap.c b/dlls/wpcap/wpcap.c
new file mode 100644
index 0000000..e143294
--- /dev/null
+++ b/dlls/wpcap/wpcap.c
@@ -0,0 +1,31 @@
+/*
+ * WPcap.dll Proxy.
+ *
+ * Copyright 2011 André Hentschel
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <pcap/pcap.h>
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(wpcap);
+
+const char* CDECL wine_pcap_lib_version(void)
+{
+ const char* ret = pcap_lib_version();
+ TRACE("%s\n", debugstr_a(ret));
+ return ret;
+}
diff --git a/dlls/wpcap/wpcap.spec b/dlls/wpcap/wpcap.spec
index 81df1b9..1b36f33 100644
--- a/dlls/wpcap/wpcap.spec
+++ b/dlls/wpcap/wpcap.spec
@@ -33,7 +33,7 @@
@ stub pcap_getevent
@ stub pcap_getnonblock
@ stub pcap_is_swapped
-@ stub pcap_lib_version
+@ cdecl pcap_lib_version() wine_pcap_lib_version
@ stub pcap_list_datalinks
@ stub pcap_live_dump
@ stub pcap_live_dump_ended
diff --git a/include/config.h.in b/include/config.h.in
index 50cfcb8..a58c0b5 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -570,6 +570,9 @@
/* Define to 1 if `numaudioengines' is a member of `oss_sysinfo'. */
#undef HAVE_OSS_SYSINFO_NUMAUDIOENGINES
+/* Define to 1 if you have the <pcap/pcap.h> header file. */
+#undef HAVE_PCAP_PCAP_H
+
/* Define to 1 if you have the `pclose' function. */
#undef HAVE_PCLOSE
More information about the wine-cvs
mailing list