diff options
author | Patrick McHardy <kaber@trash.net> | 2011-01-10 14:44:29 +0100 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2011-01-10 14:44:29 +0100 |
commit | 481ab2d4a607c4a4914ddd9debbf336f1f805c61 (patch) | |
tree | 790854e4554c575ab59abcc783ebf422b85e730a | |
parent | f6e28f8d1980c94cfe6f18ec22231009c633b69b (diff) | |
parent | 028204e0f99f0bad5dfd01add364ebd4f4befabb (diff) |
Conflicts:
pcap/bpf.h
Signed-off-by: Patrick McHardy <kaber@trash.net>
-rw-r--r-- | CREDITS | 276 | ||||
-rw-r--r-- | Makefile.in | 6 | ||||
-rw-r--r-- | Win32/Src/getaddrinfo.c | 11 | ||||
-rw-r--r-- | config.h.in | 6 | ||||
-rwxr-xr-x | configure | 319 | ||||
-rw-r--r-- | configure.in | 57 | ||||
-rw-r--r-- | gencode.c | 2 | ||||
-rw-r--r-- | inet.c | 6 | ||||
-rw-r--r-- | pcap-common.c | 21 | ||||
-rw-r--r-- | pcap-config.in | 31 | ||||
-rw-r--r-- | pcap-linux.c | 130 | ||||
-rw-r--r-- | pcap-usb-linux.c | 9 | ||||
-rw-r--r-- | pcap-win32.c | 5 | ||||
-rw-r--r-- | pcap.c | 2 | ||||
-rw-r--r-- | pcap/bpf.h | 20 | ||||
-rw-r--r-- | scanner.l | 2 | ||||
-rw-r--r-- | sf-pcap-ng.c | 2 |
17 files changed, 675 insertions, 230 deletions
@@ -1,148 +1,148 @@ This file lists people who have contributed to libpcap: The current maintainers: - Bill Fenner <fenner at research dot att dot com> - Fulvio Risso <risso at polito dot it> - Guy Harris <guy at alum dot mit dot edu> - Hannes Gredler <hannes at juniper dot net> - Michael Richardson <mcr at sandelman dot ottawa dot on dot ca> + Bill Fenner <fenner at research dot att dot com> + Fulvio Risso <risso at polito dot it> + Guy Harris <guy at alum dot mit dot edu> + Hannes Gredler <hannes at juniper dot net> + Michael Richardson <mcr at sandelman dot ottawa dot on dot ca> Additional people who have contributed patches: - Alan Bawden <Alan at LCS dot MIT dot EDU> - Albert Chin <china at thewrittenword dot com> - Alexander 'Leo' Bergolth <Leo dot Bergolth at wu-wien dot ac dot at> - Alexey Kuznetsov <kuznet at ms2 dot inr dot ac dot ru> - Alon Bar-Lev <alonbl at sourceforge dot net> - Andrew Brown <atatat at atatdot dot net> - <andy-1 at sourceforge dot net> - Antti Kantee <pooka at netbsd dot org> - Arien Vijn <arienvijn at sourceforge dot net> - Arkadiusz Miskiewicz <misiek at pld dot org dot pl> - Armando L. Caro Jr. <acaro at mail dot eecis dot udel dot edu> - Assar Westerlund <assar at sics dot se> - Brian Ginsbach <ginsbach at cray dot com> - Charles M. Hannum <mycroft at netbsd dot org> - Chris G. Demetriou <cgd at netbsd dot org> - Chris Lightfoot <cwrl at users dot sourceforge dot net> - Chris Maynard <Chris dot Maynard at gtech dot com> - Chris Pepper <pepper at mail dot reppep dot com> - Christian Bell <csbell at myri dot com> - Christian Peron <csjp at freebsd dot org> - Daniele Orlandi <daniele at orlandi dot com> - Darren Reed <darrenr at sun dot com> - David Kaelbling <drk at sgi dot com> - David Young <dyoung at ojctech dot com> - Dean Gaudet <dean at arctic dot org> - Don Ebright <Don dot Ebright at compuware dot com> - Dug Song <dugsong at monkey dot org> - Dustin Spicuzza <dustin at virtualroadside dot com> - Eric Anderson <anderse at hpl dot hp dot com> - Erik de Castro Lopo <erik dot de dot castro dot lopo at sensorynetworks dot com> - Felix Obenhuber <felix at obenhuber dot de> - Florent Drouin <Florent dot Drouin at alcatel-lucent dot fr> - Franz Schaefer <schaefer at mond dot at> - Fulko Hew <fulko dot hew at gmail dot com> - Fumiyuki Shimizu <fumifumi at abacustech dot jp> - Gianluca Varenni <varenni at netgroup-serv dot polito dot it> - Gilbert Hoyek <gil_hoyek at hotmail dot com> - Gisle Vanem <gvanem at broadpark dot no> - Graeme Hewson <ghewson at cix dot compulink dot co dot uk> - Greg Stark <gsstark at mit dot edu> - Greg Troxel <gdt at ir dot bbn dot com> - Gregor Maier <gregor at net dot in dot tum dot de> - Guillaume Pelat <endymion_ at users dot sourceforge dot net> - Hagen Paul Pfeifer <hagen at jauu dot net> - Hyung Sik Yoon <hsyn at kr dot ibm dot com> - Igor Khristophorov <igor at atdot dot org> - Jan-Philip Velders <jpv at veldersjes dot net> - Jason R. Thorpe <thorpej at netbsd dot org> - Javier Achirica <achirica at ttd dot net> - Jean Tourrilhes <jt at hpl dot hp dot com> - Jean-Louis Charton <Jean-Louis.CHARTON at oikialog dot com> - Jefferson Ogata <jogata at nodc dot noaa dot gov> - Jesper Peterson <jesper at endace dot com> - Joerg Mayer <jmayer at loplof dot de> - John Bankier <jbankier at rainfinity dot com> - Jon Lindgren <jonl at yubyub dot net> - Jon Smirl <jonsmirl at gmail dot com> - Juergen Schoenwaelder <schoenw at ibr dot cs dot tu-bs dot de> - Jung-uk Kim <jkim at FreeBSD dot org> - Kazushi Sugyo <sugyo at pb dot jp dot nec dot com> - Klaus Klein <kleink at netbsd dot org> - Koryn Grant <koryn at endace dot com> - Kris Katterjohn <katterjohn at gmail dot com> - Krzysztof Halasa <khc at pm dot waw dot pl> - Lorenzo Cavallaro <sullivan at sikurezza dot org> - Loris Degioanni <loris at netgroup-serv dot polito dot it> - Love Hörnquist-Åstrand <lha at stacken dot kth dot se> - Luis Martin Garcia <luis dot mgarc at gmail dot com> - Maciej W. Rozycki <macro at ds2 dot pg dot gda dot pl> - Marcus Felipe Pereira <marcus at task dot com dot br> - Mark C. Brown <mbrown at hp dot com> - Mark Pizzolato <List-tcpdump-workers at subscriptions dot pizzolato dot net> - Markus Mayer <markus_mayer at sourceforge dot net> - Martin Husemann <martin at netbsd dot org> - Márton Németh <nm127 at freemail dot hu> - Matthew Luckie <mjl at luckie dot org dot nz> - Max Laier <max at love2party dot net> - Mike Frysinger <vapier at gmail dot com> - Mike Kershaw <dragorn at kismetwireless dot net> - Mike Wiacek <mike at iroot dot net> - Monroe Williams <monroe at pobox dot com> - <nvercamm at sourceforge dot net> - N. Leiten <nleiten at sourceforge dot net> - Nicolas Dade <ndade at nsd dot dyndns dot org> - Octavian Cerna <tavy at ylabs dot com> - Olaf Kirch <okir at caldera dot de> - Ollie Wild <aaw at users dot sourceforge dot net> - Onno van der Linden <onno at simplex dot nl> - Paolo Abeni <paolo dot abeni at email dot it> - Patrick Marie <mycroft at virgaria dot org> - Patrick McHardy <kaber at trash not net> - Paul Mundt <lethal at linux-sh dot org> - Pavel Kankovsky <kan at dcit dot cz> - Pawel Pokrywka <publicpp at gmail dot com> - Peter Fales <peter at fales-lorenz dot net> - Peter Jeremy <peter dot jeremy at alcatel dot com dot au> - Peter Volkov <pva at gentoo dot org> - Phil Wood <cpw at lanl dot gov> - Rafal Maszkowski <rzm at icm dot edu dot pl> - <rcb-isis at users dot sourceforge dot net> - Richard Stearn <richard at rns-stearn dot demon dot co dot uk> - Rick Jones <raj at cup dot hp dot com> - Robert Edmonds <stu-42 at sourceforge dot net> - Roberto Mariani <jelot-tcpdump at jelot dot it> - Romain Francoise <rfrancoise at debian dot org> - Sagun Shakya <sagun dot shakya at sun dot com> - Scott Barron <sb125499 at ohiou dot edu> - Scott Gifford <sgifford at tir dot com> - Scott Mcmillan <scott.a.mcmillan at intel dot com> - Sebastian Krahmer <krahmer at cs dot uni-potsdam dot de> - Sebastien Roy <Sebastien dot Roy at Sun dot COM> - Sepherosa Ziehau <sepherosa at gmail dot com> - Shaun Clowes <delius at progsoc dot uts dot edu dot au> - Solomon Peachy <pizza at shaftnet dot org> - Stefan Hudson <hudson at mbay dot net> - Stephen Donnelly <stephen at endace dot com> - Takashi Yamamoto <yamt at mwd dot biglobe dot ne dot jp> - Tanaka Shin-ya <zstanaka at archer dot livedoor dot com> - Tobias Poschwatta <posch at sourceforge dot net> - Tony Li <tli at procket dot com> - Torsten Landschoff <torsten at debian dot org> - Uns Lider <unslider at miranda dot org> - Uwe Girlich <Uwe dot Girlich at philosys dot de> - Wesley Shields <wxs at FreeBSD dot org> - Xianjie Zhang <xzhang at cup dot hp dot com> - Xin Li <delphij at FreeBSD dot org> - Yen Yen Lim - Yvan Vanhullebus <vanhu at sourceforge dot net> - Yoann Vandoorselaere <yoann at prelude-ids dot org> + Alan Bawden <Alan at LCS dot MIT dot EDU> + Albert Chin <china at thewrittenword dot com> + Alexander 'Leo' Bergolth <Leo dot Bergolth at wu-wien dot ac dot at> + Alexey Kuznetsov <kuznet at ms2 dot inr dot ac dot ru> + Alon Bar-Lev <alonbl at sourceforge dot net> + Andrew Brown <atatat at atatdot dot net> + <andy-1 at sourceforge dot net> + Antti Kantee <pooka at netbsd dot org> + Arien Vijn <arienvijn at sourceforge dot net> + Arkadiusz Miskiewicz <misiek at pld dot org dot pl> + Armando L. Caro Jr. <acaro at mail dot eecis dot udel dot edu> + Assar Westerlund <assar at sics dot se> + Brian Ginsbach <ginsbach at cray dot com> + Charles M. Hannum <mycroft at netbsd dot org> + Chris G. Demetriou <cgd at netbsd dot org> + Chris Lightfoot <cwrl at users dot sourceforge dot net> + Chris Maynard <Chris dot Maynard at gtech dot com> + Chris Pepper <pepper at mail dot reppep dot com> + Christian Bell <csbell at myri dot com> + Christian Peron <csjp at freebsd dot org> + Daniele Orlandi <daniele at orlandi dot com> + Darren Reed <darrenr at sun dot com> + David Kaelbling <drk at sgi dot com> + David Young <dyoung at ojctech dot com> + Dean Gaudet <dean at arctic dot org> + Don Ebright <Don dot Ebright at compuware dot com> + Dug Song <dugsong at monkey dot org> + Dustin Spicuzza <dustin at virtualroadside dot com> + Eric Anderson <anderse at hpl dot hp dot com> + Erik de Castro Lopo <erik dot de dot castro dot lopo at sensorynetworks dot com> + Felix Obenhuber <felix at obenhuber dot de> + Florent Drouin <Florent dot Drouin at alcatel-lucent dot fr> + Franz Schaefer <schaefer at mond dot at> + Fulko Hew <fulko dot hew at gmail dot com> + Fumiyuki Shimizu <fumifumi at abacustech dot jp> + Gianluca Varenni <varenni at netgroup-serv dot polito dot it> + Gilbert Hoyek <gil_hoyek at hotmail dot com> + Gisle Vanem <gvanem at broadpark dot no> + Graeme Hewson <ghewson at cix dot compulink dot co dot uk> + Greg Stark <gsstark at mit dot edu> + Greg Troxel <gdt at ir dot bbn dot com> + Gregor Maier <gregor at net dot in dot tum dot de> + Guillaume Pelat <endymion_ at users dot sourceforge dot net> + Hagen Paul Pfeifer <hagen at jauu dot net> + Hyung Sik Yoon <hsyn at kr dot ibm dot com> + Igor Khristophorov <igor at atdot dot org> + Jan-Philip Velders <jpv at veldersjes dot net> + Jason R. Thorpe <thorpej at netbsd dot org> + Javier Achirica <achirica at ttd dot net> + Jean Tourrilhes <jt at hpl dot hp dot com> + Jean-Louis Charton <Jean-Louis.CHARTON at oikialog dot com> + Jefferson Ogata <jogata at nodc dot noaa dot gov> + Jesper Peterson <jesper at endace dot com> + Joerg Mayer <jmayer at loplof dot de> + John Bankier <jbankier at rainfinity dot com> + Jon Lindgren <jonl at yubyub dot net> + Jon Smirl <jonsmirl at gmail dot com> + Juergen Schoenwaelder <schoenw at ibr dot cs dot tu-bs dot de> + Jung-uk Kim <jkim at FreeBSD dot org> + Kazushi Sugyo <sugyo at pb dot jp dot nec dot com> + Klaus Klein <kleink at netbsd dot org> + Koryn Grant <koryn at endace dot com> + Kris Katterjohn <katterjohn at gmail dot com> + Krzysztof Halasa <khc at pm dot waw dot pl> + Lorenzo Cavallaro <sullivan at sikurezza dot org> + Loris Degioanni <loris at netgroup-serv dot polito dot it> + Love Hörnquist-Åstrand <lha at stacken dot kth dot se> + Luis MartinGarcia <luis dot mgarc at gmail dot com> + Maciej W. Rozycki <macro at ds2 dot pg dot gda dot pl> + Marcus Felipe Pereira <marcus at task dot com dot br> + Mark C. Brown <mbrown at hp dot com> + Mark Pizzolato <List-tcpdump-workers at subscriptions dot pizzolato dot net> + Markus Mayer <markus_mayer at sourceforge dot net> + Martin Husemann <martin at netbsd dot org> + Márton Németh <nm127 at freemail dot hu> + Matthew Luckie <mjl at luckie dot org dot nz> + Max Laier <max at love2party dot net> + Mike Frysinger <vapier at gmail dot com> + Mike Kershaw <dragorn at kismetwireless dot net> + Mike Wiacek <mike at iroot dot net> + Monroe Williams <monroe at pobox dot com> + <nvercamm at sourceforge dot net> + N. Leiten <nleiten at sourceforge dot net> + Nicolas Dade <ndade at nsd dot dyndns dot org> + Octavian Cerna <tavy at ylabs dot com> + Olaf Kirch <okir at caldera dot de> + Ollie Wild <aaw at users dot sourceforge dot net> + Onno van der Linden <onno at simplex dot nl> + Paolo Abeni <paolo dot abeni at email dot it> + Patrick Marie <mycroft at virgaria dot org> + Patrick McHardy <kaber at trash not net> + Paul Mundt <lethal at linux-sh dot org> + Pavel Kankovsky <kan at dcit dot cz> + Pawel Pokrywka <publicpp at gmail dot com> + Peter Fales <peter at fales-lorenz dot net> + Peter Jeremy <peter dot jeremy at alcatel dot com dot au> + Peter Volkov <pva at gentoo dot org> + Phil Wood <cpw at lanl dot gov> + Rafal Maszkowski <rzm at icm dot edu dot pl> + <rcb-isis at users dot sourceforge dot net> + Richard Stearn <richard at rns-stearn dot demon dot co dot uk> + Rick Jones <raj at cup dot hp dot com> + Robert Edmonds <stu-42 at sourceforge dot net> + Roberto Mariani <jelot-tcpdump at jelot dot it> + Romain Francoise <rfrancoise at debian dot org> + Sagun Shakya <sagun dot shakya at sun dot com> + Scott Barron <sb125499 at ohiou dot edu> + Scott Gifford <sgifford at tir dot com> + Scott Mcmillan <scott.a.mcmillan at intel dot com> + Sebastian Krahmer <krahmer at cs dot uni-potsdam dot de> + Sebastien Roy <Sebastien dot Roy at Sun dot COM> + Sepherosa Ziehau <sepherosa at gmail dot com> + Shaun Clowes <delius at progsoc dot uts dot edu dot au> + Solomon Peachy <pizza at shaftnet dot org> + Stefan Hudson <hudson at mbay dot net> + Stephen Donnelly <stephen at endace dot com> + Takashi Yamamoto <yamt at mwd dot biglobe dot ne dot jp> + Tanaka Shin-ya <zstanaka at archer dot livedoor dot com> + Tobias Poschwatta <posch at sourceforge dot net> + Tony Li <tli at procket dot com> + Torsten Landschoff <torsten at debian dot org> + Uns Lider <unslider at miranda dot org> + Uwe Girlich <Uwe dot Girlich at philosys dot de> + Wesley Shields <wxs at FreeBSD dot org> + Xianjie Zhang <xzhang at cup dot hp dot com> + Xin Li <delphij at FreeBSD dot org> + Yen Yen Lim + Yvan Vanhullebus <vanhu at sourceforge dot net> + Yoann Vandoorselaere <yoann at prelude-ids dot org> The original LBL crew: - Steve McCanne - Craig Leres - Van Jacobson + Steve McCanne + Craig Leres + Van Jacobson Past maintainers: - Jun-ichiro itojun Hagino <itojun at iijlab dot net> + Jun-ichiro itojun Hagino <itojun at iijlab dot net> diff --git a/Makefile.in b/Makefile.in index 5fcfb78..05edb96 100644 --- a/Makefile.in +++ b/Makefile.in @@ -492,11 +492,7 @@ bpf_filter.o: bpf_filter.c # pcap-config: $(srcdir)/pcap-config.in @rm -f $@ $@.tmp - sed -e 's|@includedir[@]|$(includedir)|g' \ - -e 's|@libdir[@]|$(libdir)|g' \ - -e 's|@LIBS[@]|$(LIBS)|g' \ - -e 's|@V_RPATH_OPT[@]|$(V_RPATH_OPT)|g' \ - $(srcdir)/pcap-config.in >$@.tmp + ./config.status --file=$@.tmp:$< mv $@.tmp $@ chmod a+x $@ diff --git a/Win32/Src/getaddrinfo.c b/Win32/Src/getaddrinfo.c index 8e8ad85..ebfe8c2 100644 --- a/Win32/Src/getaddrinfo.c +++ b/Win32/Src/getaddrinfo.c @@ -45,6 +45,12 @@ * in ai_flags? */ +/* + * Mingw64 has its own implementation of getaddrinfo, mingw32 no + */ +#ifndef __MINGW64__ + + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -85,7 +91,7 @@ static const char rcsid[] _U_ = #ifdef NEED_ADDRINFO_H #include "addrinfo.h" #ifdef WIN32 -#include "IP6_misc.h" +#include "ip6_misc.h" #endif #endif @@ -1118,3 +1124,6 @@ find_afd(af) } return NULL; } + + +#endif /*__MING64__*/ diff --git a/config.h.in b/config.h.in index 688f596..6ea10ad 100644 --- a/config.h.in +++ b/config.h.in @@ -52,9 +52,15 @@ /* if libnl exists */ #undef HAVE_LIBNL +/* if libnl exists and is version 2.x */ +#undef HAVE_LIBNL_2_x + /* Define to 1 if you have the <limits.h> header file. */ #undef HAVE_LIMITS_H +/* Define to 1 if you have the <linux/compiler.h> header file. */ +#undef HAVE_LINUX_COMPILER_H + /* Define to 1 if you have the <linux/net_tstamp.h> header file. */ #undef HAVE_LINUX_NET_TSTAMP_H @@ -7347,7 +7347,93 @@ fi if test x$with_libnl != xno ; then - { echo "$as_me:$LINENO: checking for nl_handle_alloc in -lnl" >&5 + # + # Try libnl 2.x first. + # + { echo "$as_me:$LINENO: checking for nl_socket_alloc in -lnl" >&5 +echo $ECHO_N "checking for nl_socket_alloc in -lnl... $ECHO_C" >&6; } +if test "${ac_cv_lib_nl_nl_socket_alloc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* 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 nl_socket_alloc (); +int +main () +{ +return nl_socket_alloc (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_nl_nl_socket_alloc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_nl_nl_socket_alloc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_nl_nl_socket_alloc" >&5 +echo "${ECHO_T}$ac_cv_lib_nl_nl_socket_alloc" >&6; } +if test $ac_cv_lib_nl_nl_socket_alloc = yes; then + + # + # Yes, we have libnl 2.x. + # + LIBS="-lnl-genl -lnl $LIBS" + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LIBNL 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LIBNL_2_x 1 +_ACEOF + + +else + + # + # No, we don't; do we have libnl 1.x? + # + { echo "$as_me:$LINENO: checking for nl_handle_alloc in -lnl" >&5 echo $ECHO_N "checking for nl_handle_alloc in -lnl... $ECHO_C" >&6; } if test "${ac_cv_lib_nl_nl_handle_alloc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -7409,18 +7495,30 @@ fi { echo "$as_me:$LINENO: result: $ac_cv_lib_nl_nl_handle_alloc" >&5 echo "${ECHO_T}$ac_cv_lib_nl_nl_handle_alloc" >&6; } if test $ac_cv_lib_nl_nl_handle_alloc = yes; then - LIBS="-lnl $LIBS" + + # + # Yes. + # + LIBS="-lnl $LIBS" cat >>confdefs.h <<\_ACEOF #define HAVE_LIBNL 1 _ACEOF + else - if test x$with_libnl = xyes ; then - { { echo "$as_me:$LINENO: error: libnl support requested but libnl not found" >&5 + + # + # No, we don't have libnl at all. + # + if test x$with_libnl = xyes ; then + { { echo "$as_me:$LINENO: error: libnl support requested but libnl not found" >&5 echo "$as_me: error: libnl support requested but libnl not found" >&2;} { (exit 1); exit 1; }; } - fi + fi + +fi + fi @@ -10329,6 +10427,213 @@ _ACEOF { echo "$as_me:$LINENO: Device for USB sniffing is /dev/$ac_usb_dev_name" >&5 echo "$as_me: Device for USB sniffing is /dev/$ac_usb_dev_name" >&6;} + # + # Do we have a version of <linux/compiler.h> available? + # If so, we might need it for <linux/usbdevice_fs.h>. + # + +for ac_header in linux/compiler.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + if test "$ac_cv_header_linux_compiler_h" = yes; then + # + # Yes - include it when testing for <linux/usbdevice_fs.h>. + # + +for ac_header in linux/usbdevice_fs.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <linux/compiler.h> + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + else for ac_header in linux/usbdevice_fs.h do @@ -10469,6 +10774,7 @@ fi done + fi if test "$ac_cv_header_linux_usbdevice_fs_h" = yes; then # # OK, does it define bRequestType? Older versions of the kernel @@ -10492,6 +10798,9 @@ $ac_includes_default #ifdef HAVE_SYS_BITYPES_H #include <sys/bitypes.h> #endif +#ifdef HAVE_LINUX_COMPILER_H +#include <linux/compiler.h> +#endif # include <linux/usbdevice_fs.h> int main () diff --git a/configure.in b/configure.in index 16e0299..cd8ed95 100644 --- a/configure.in +++ b/configure.in @@ -445,13 +445,39 @@ linux) with_libnl=$withval,,) if test x$with_libnl != xno ; then - AC_CHECK_LIB(nl, nl_handle_alloc, - LIBS="-lnl $LIBS" - AC_DEFINE(HAVE_LIBNL,1,[if libnl exists]), - if test x$with_libnl = xyes ; then - AC_MSG_ERROR([libnl support requested but libnl not found]) - fi - ) + # + # Try libnl 2.x first. + # + AC_CHECK_LIB(nl, nl_socket_alloc, + [ + # + # Yes, we have libnl 2.x. + # + LIBS="-lnl-genl -lnl $LIBS" + AC_DEFINE(HAVE_LIBNL,1,[if libnl exists]) + AC_DEFINE(HAVE_LIBNL_2_x,1,[if libnl exists and is version 2.x]) + ], + [ + # + # No, we don't; do we have libnl 1.x? + # + AC_CHECK_LIB(nl, nl_handle_alloc, + [ + # + # Yes. + # + LIBS="-lnl $LIBS" + AC_DEFINE(HAVE_LIBNL,1,[if libnl exists]) + ], + [ + # + # No, we don't have libnl at all. + # + if test x$with_libnl = xyes ; then + AC_MSG_ERROR([libnl support requested but libnl not found]) + fi + ]) + ]) fi AC_LBL_TPACKET_STATS @@ -1365,7 +1391,19 @@ linux*) fi AC_DEFINE_UNQUOTED(LINUX_USB_MON_DEV, "/dev/$ac_usb_dev_name", [path for device for USB sniffing]) AC_MSG_NOTICE(Device for USB sniffing is /dev/$ac_usb_dev_name) - AC_CHECK_HEADERS(linux/usbdevice_fs.h) + # + # Do we have a version of <linux/compiler.h> available? + # If so, we might need it for <linux/usbdevice_fs.h>. + # + AC_CHECK_HEADERS(linux/compiler.h) + if test "$ac_cv_header_linux_compiler_h" = yes; then + # + # Yes - include it when testing for <linux/usbdevice_fs.h>. + # + AC_CHECK_HEADERS(linux/usbdevice_fs.h,,,[#include <linux/compiler.h>]) + else + AC_CHECK_HEADERS(linux/usbdevice_fs.h) + fi if test "$ac_cv_header_linux_usbdevice_fs_h" = yes; then # # OK, does it define bRequestType? Older versions of the kernel @@ -1380,6 +1418,9 @@ AC_INCLUDES_DEFAULT #ifdef HAVE_SYS_BITYPES_H #include <sys/bitypes.h> #endif +#ifdef HAVE_LINUX_COMPILER_H +#include <linux/compiler.h> +#endif # include <linux/usbdevice_fs.h>], [u_int i = sizeof(((struct usbdevfs_ctrltransfer *)0)->bRequestType)], ac_cv_usbdevfs_ctrltransfer_has_bRequestType=yes, @@ -47,7 +47,7 @@ static const char rcsid[] _U_ = * XXX - why was this included even on UNIX? */ #ifdef __MINGW32__ -#include "IP6_misc.h" +#include "ip6_misc.h" #endif #ifndef WIN32 @@ -881,8 +881,10 @@ pcap_lookupdev(errbuf) */ while(NAdapts--) { - strcpy((char*)tUstr, tAstr); - (char*)tUstr += strlen(tAstr) + 1;; + char* tmp = (char*)tUstr; + strcpy(tmp, tAstr); + tmp += strlen(tAstr) + 1; + tUstr = (WCHAR*)tmp; tAstr += strlen(tAstr) + 1; } diff --git a/pcap-common.c b/pcap-common.c index 5f6a929..3989dfc 100644 --- a/pcap-common.c +++ b/pcap-common.c @@ -735,6 +735,24 @@ static const char rcsid[] _U_ = */ #define LINKTYPE_IEEE802_15_4_NOFCS 230 +/* + * Raw D-Bus: + * + * http://www.freedesktop.org/wiki/Software/dbus + * + * messages: + * + * http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-messages + * + * starting with the endianness flag, followed by the message type, etc., + * but without the authentication handshake before the message sequence: + * + * http://dbus.freedesktop.org/doc/dbus-specification.html#auth-protocol + * + * Requested by Martin Vidner <martin@vidner.net>. + */ +#define LINKTYPE_DBUS 231 + static struct linktype_map { int dlt; @@ -1084,6 +1102,9 @@ static struct linktype_map { /* IEEE 802.15.4 exactly as it appears in the spec, without FCS */ { DLT_IEEE802_15_4_NOFCS, LINKTYPE_IEEE802_15_4_NOFCS }, + /* D-Bus messages */ + { DLT_DBUS, LINKTYPE_DBUS }, + { -1, -1 } }; diff --git a/pcap-config.in b/pcap-config.in index 37526d7..206be3b 100644 --- a/pcap-config.in +++ b/pcap-config.in @@ -4,6 +4,13 @@ # Script to give the appropriate compiler flags and linker flags # to use when building code that uses libpcap. # +prefix="@prefix@" +exec_prefix="@exec_prefix@" +includedir="@includedir@" +libdir="@libdir@" +V_RPATH_OPT="@V_RPATH_OPT@" +LIBS="@LIBS@" + static=0 show_cflags=0 show_libs=0 @@ -29,14 +36,14 @@ do esac shift done -if [ "@V_RPATH_OPT@" != "" ] +if [ "$V_RPATH_OPT" != "" ] then # # If libdir isn't /usr/lib, add it to the run-time linker path. # - if [ "@libdir@" != "/usr/lib" ] + if [ "$libdir" != "/usr/lib" ] then - RPATH=@V_RPATH_OPT@@libdir@ + RPATH=$V_RPATH_OPT$libdir fi fi if [ "$static" = 1 ] @@ -47,19 +54,19 @@ then # if [ "$show_cflags" = 1 -a "$show_libs" = 1 ] then - echo "-I@includedir@ -L@libdir@ -lpcap @LIBS@" + echo "-I$includedir -L$libdir -lpcap $LIBS" elif [ "$show_cflags" = 1 -a "$show_additional_libs" = 1 ] then - echo "-I@includedir@ -L@libdir@ @LIBS@" + echo "-I$includedir -L$libdir $LIBS" elif [ "$show_cflags" = 1 ] then - echo "-I@includedir@" + echo "-I$includedir" elif [ "$show_libs" = 1 ] then - echo "-L@libdir@ -lpcap @LIBS@" + echo "-L$libdir -lpcap $LIBS" elif [ "$show_additional_libs" = 1 ] then - echo "@LIBS@" + echo "$LIBS" fi else # @@ -68,15 +75,15 @@ else # if [ "$show_cflags" = 1 -a "$show_libs" = 1 ] then - echo "-I@includedir@ -L@libdir@ $RPATH -lpcap" + echo "-I$includedir -L$libdir $RPATH -lpcap" elif [ "$show_cflags" = 1 -a "$show_additional_libs" = 1 ] then - echo "-I@includedir@" + echo "-I$includedir" elif [ "$show_cflags" = 1 ] then - echo "-I@includedir@" + echo "-I$includedir" elif [ "$show_libs" = 1 ] then - echo "-L@libdir@ $RPATH -lpcap" + echo "-L$libdir $RPATH -lpcap" fi fi diff --git a/pcap-linux.c b/pcap-linux.c index 9cdc0bf..8b4409e 100644 --- a/pcap-linux.c +++ b/pcap-linux.c @@ -537,8 +537,41 @@ get_mac80211_phydev(pcap_t *handle, const char *device, char *phydev_path, return 1; } +#ifdef HAVE_LIBNL_2_x +#define get_nl_errmsg nl_geterror +#else +/* libnl 2.x compatibility code */ + +#define nl_sock nl_handle + +static inline struct nl_handle * +nl_socket_alloc(void) +{ + return nl_handle_alloc(); +} + +static inline void +nl_socket_free(struct nl_handle *h) +{ + nl_handle_destroy(h); +} + +#define get_nl_errmsg strerror + +static inline int +__genl_ctrl_alloc_cache(struct nl_handle *h, struct nl_cache **cache) +{ + struct nl_cache *tmp = genl_ctrl_alloc_cache(h); + if (!tmp) + return -ENOMEM; + *cache = tmp; + return 0; +} +#define genl_ctrl_alloc_cache __genl_ctrl_alloc_cache +#endif /* !HAVE_LIBNL_2_x */ + struct nl80211_state { - struct nl_handle *nl_handle; + struct nl_sock *nl_sock; struct nl_cache *nl_cache; struct genl_family *nl80211; }; @@ -546,23 +579,26 @@ struct nl80211_state { static int nl80211_init(pcap_t *handle, struct nl80211_state *state, const char *device) { - state->nl_handle = nl_handle_alloc(); - if (!state->nl_handle) { + int err; + + state->nl_sock = nl_socket_alloc(); + if (!state->nl_sock) { snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "%s: failed to allocate netlink handle", device); return PCAP_ERROR; } - if (genl_connect(state->nl_handle)) { + if (genl_connect(state->nl_sock)) { snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "%s: failed to connect to generic netlink", device); goto out_handle_destroy; } - state->nl_cache = genl_ctrl_alloc_cache(state->nl_handle); - if (!state->nl_cache) { + err = genl_ctrl_alloc_cache(state->nl_sock, &state->nl_cache); + if (err < 0) { snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, - "%s: failed to allocate generic netlink cache", device); + "%s: failed to allocate generic netlink cache: %s", + device, get_nl_errmsg(-err)); goto out_handle_destroy; } @@ -578,7 +614,7 @@ nl80211_init(pcap_t *handle, struct nl80211_state *state, const char *device) out_cache_free: nl_cache_free(state->nl_cache); out_handle_destroy: - nl_handle_destroy(state->nl_handle); + nl_socket_free(state->nl_sock); return PCAP_ERROR; } @@ -587,7 +623,7 @@ nl80211_cleanup(struct nl80211_state *state) { genl_family_put(state->nl80211); nl_cache_free(state->nl_cache); - nl_handle_destroy(state->nl_handle); + nl_socket_free(state->nl_sock); } static int @@ -615,12 +651,19 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state, NLA_PUT_STRING(msg, NL80211_ATTR_IFNAME, mondevice); NLA_PUT_U32(msg, NL80211_ATTR_IFTYPE, NL80211_IFTYPE_MONITOR); - err = nl_send_auto_complete(state->nl_handle, msg); + err = nl_send_auto_complete(state->nl_sock, msg); if (err < 0) { +#ifdef HAVE_LIBNL_2_x + if (err == -NLE_FAILURE) { +#else if (err == -ENFILE) { +#endif /* * Device not available; our caller should just - * keep trying. + * keep trying. (libnl 2.x maps ENFILE to + * NLE_FAILURE; it can also map other errors + * to that, but there's not much we can do + * about that.) */ nlmsg_free(msg); return 0; @@ -631,17 +674,24 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state, */ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "%s: nl_send_auto_complete failed adding %s interface: %s", - device, mondevice, strerror(-err)); + device, mondevice, get_nl_errmsg(-err)); nlmsg_free(msg); return PCAP_ERROR; } } - err = nl_wait_for_ack(state->nl_handle); + err = nl_wait_for_ack(state->nl_sock); if (err < 0) { +#ifdef HAVE_LIBNL_2_x + if (err == -NLE_FAILURE) { +#else if (err == -ENFILE) { +#endif /* * Device not available; our caller should just - * keep trying. + * keep trying. (libnl 2.x maps ENFILE to + * NLE_FAILURE; it can also map other errors + * to that, but there's not much we can do + * about that.) */ nlmsg_free(msg); return 0; @@ -652,7 +702,7 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state, */ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "%s: nl_wait_for_ack failed adding %s interface: %s", - device, mondevice, strerror(-err)); + device, mondevice, get_nl_errmsg(-err)); nlmsg_free(msg); return PCAP_ERROR; } @@ -695,47 +745,21 @@ del_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state, 0, NL80211_CMD_DEL_INTERFACE, 0); NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, ifindex); - err = nl_send_auto_complete(state->nl_handle, msg); + err = nl_send_auto_complete(state->nl_sock, msg); if (err < 0) { - if (err == -ENFILE) { - /* - * Device not available; our caller should just - * keep trying. - */ - nlmsg_free(msg); - return 0; - } else { - /* - * Real failure, not just "that device is not - * available. - */ - snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, - "%s: nl_send_auto_complete failed deleting %s interface: %s", - device, mondevice, strerror(-err)); - nlmsg_free(msg); - return PCAP_ERROR; - } + snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, + "%s: nl_send_auto_complete failed deleting %s interface: %s", + device, mondevice, get_nl_errmsg(-err)); + nlmsg_free(msg); + return PCAP_ERROR; } - err = nl_wait_for_ack(state->nl_handle); + err = nl_wait_for_ack(state->nl_sock); if (err < 0) { - if (err == -ENFILE) { - /* - * Device not available; our caller should just - * keep trying. - */ - nlmsg_free(msg); - return 0; - } else { - /* - * Real failure, not just "that device is not - * available. - */ - snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, - "%s: nl_wait_for_ack failed adding %s interface: %s", - device, mondevice, strerror(-err)); - nlmsg_free(msg); - return PCAP_ERROR; - } + snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, + "%s: nl_wait_for_ack failed adding %s interface: %s", + device, mondevice, get_nl_errmsg(-err)); + nlmsg_free(msg); + return PCAP_ERROR; } /* diff --git a/pcap-usb-linux.c b/pcap-usb-linux.c index daaa900..f1b430c 100644 --- a/pcap-usb-linux.c +++ b/pcap-usb-linux.c @@ -61,8 +61,15 @@ static const char rcsid[] _U_ = #include <sys/ioctl.h> #include <sys/mman.h> #ifdef HAVE_LINUX_USBDEVICE_FS_H +/* + * We might need <linux/compiler.h> to define __user for + * <linux/usbdevice_fs.h>. + */ +#ifdef HAVE_LINUX_COMPILER_H +#include <linux/compiler.h> +#endif /* HAVE_LINUX_COMPILER_H */ #include <linux/usbdevice_fs.h> -#endif +#endif /* HAVE_LINUX_USBDEVICE_FS_H */ #define USB_IFACE "usbmon" #define USB_TEXT_DIR_OLD "/sys/kernel/debug/usbmon" diff --git a/pcap-win32.c b/pcap-win32.c index 0e2201e..fc6eed1 100644 --- a/pcap-win32.c +++ b/pcap-win32.c @@ -39,7 +39,12 @@ static const char rcsid[] _U_ = #include <pcap-int.h> #include <Packet32.h> #ifdef __MINGW32__ +#ifdef __MINGW64__ +#include <ntddndis.h> +#else /*__MINGW64__*/ +#include <ddk/ntddndis.h> #include <ddk/ndis.h> +#endif /*__MINGW64__*/ #else /*__MINGW32__*/ #include <ntddndis.h> #endif /*__MINGW32__*/ @@ -57,7 +57,7 @@ static const char rcsid[] _U_ = #include <stdio.h> #include <stdlib.h> #include <string.h> -#if !defined(_MSC_VER) && !defined(__BORLANDC__) +#if !defined(_MSC_VER) && !defined(__BORLANDC__) && !defined(__MINGW32__) #include <unistd.h> #endif #include <fcntl.h> @@ -970,9 +970,27 @@ struct bpf_version { #define DLT_IEEE802_15_4_NOFCS 230 /* + * Raw D-Bus: + * + * http://www.freedesktop.org/wiki/Software/dbus + * + * messages: + * + * http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-messages + * + * starting with the endianness flag, followed by the message type, etc., + * but without the authentication handshake before the message sequence: + * + * http://dbus.freedesktop.org/doc/dbus-specification.html#auth-protocol + * + * Requested by Martin Vidner <martin@vidner.net>. + */ +#define DLT_DBUS 231 + +/* * DECT */ -#define DLT_DECT_LINUX 231 +#define DLT_DECT_LINUX 232 /* * DLT and savefile link type values are split into a class and @@ -54,7 +54,7 @@ static const char rcsid[] _U_ = #include <pcap-stdinc.h> #ifdef __MINGW32__ -#include "IP6_misc.h" +#include "ip6_misc.h" #endif #else /* WIN32 */ #include <sys/socket.h> /* for "struct sockaddr" in "struct addrinfo" */ diff --git a/sf-pcap-ng.c b/sf-pcap-ng.c index 9049991..1554320 100644 --- a/sf-pcap-ng.c +++ b/sf-pcap-ng.c @@ -1053,7 +1053,7 @@ found: /* * Is the interface ID an interface we know? */ - if (interface_id > p->sf.ifcount) { + if (interface_id >= p->sf.ifcount) { /* * Yes. Fail. */ |