X-Git-Url: https://git.tcpdump.org/libpcap/blobdiff_plain/b15752a055fa34fd8997748573e28429ddf7423d..4e145de1143f597ef8277b51c5524af1e994f277:/tests/valgrindtest.c diff --git a/tests/valgrindtest.c b/tests/valgrindtest.c index 011fe117..6bb6d4f6 100644 --- a/tests/valgrindtest.c +++ b/tests/valgrindtest.c @@ -50,7 +50,7 @@ The Regents of the University of California. All rights reserved.\n"; #endif #ifdef HAVE_CONFIG_H -#include "config.h" +#include #endif #include @@ -64,6 +64,8 @@ The Regents of the University of California. All rights reserved.\n"; #include #include +#include "pcap/funcattrs.h" + #if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) /* BSD-flavored OS - use BPF */ #define USE_BPF @@ -99,55 +101,6 @@ The Regents of the University of California. All rights reserved.\n"; static char *program_name; -/* - * This was introduced by Clang: - * - * http://clang.llvm.org/docs/LanguageExtensions.html#has-attribute - * - * in some version (which version?); it has been picked up by GCC 5.0. - */ -#ifndef __has_attribute - /* - * It's a macro, so you can check whether it's defined to check - * whether it's supported. - * - * If it's not, define it to always return 0, so that we move on to - * the fallback checks. - */ - #define __has_attribute(x) 0 -#endif - -#if __has_attribute(noreturn) \ - || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)) \ - || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) \ - || (defined(__xlC__) && __xlC__ >= 0x0A01) \ - || (defined(__HP_aCC) && __HP_aCC >= 61000) - /* - * Compiler with support for it, or GCC 2.5 and later, or Solaris Studio 12 - * (Sun C 5.9) and later, or IBM XL C 10.1 and later (do any earlier - * versions of XL C support this?), or HP aCC A.06.10 and later. - */ - #define PCAP_NORETURN __attribute((noreturn)) -#elif defined( _MSC_VER ) - #define PCAP_NORETURN __declspec(noreturn) -#else - #define PCAP_NORETURN -#endif - -#if __has_attribute(__format__) \ - || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 203)) \ - || (defined(__xlC__) && __xlC__ >= 0x0A01) \ - || (defined(__HP_aCC) && __HP_aCC >= 61000) - /* - * Compiler with support for it, or GCC 2.3 and later, or IBM XL C 10.1 - * and later (do any earlier versions of XL C support this?), - * or HP aCC A.06.10 and later. - */ - #define PCAP_PRINTFLIKE(x,y) __attribute__((__format__(__printf__,x,y))) -#else - #define PCAP_PRINTFLIKE(x,y) -#endif - /* Forwards */ static void PCAP_NORETURN usage(void); static void PCAP_NORETURN error(const char *, ...) PCAP_PRINTFLIKE(1, 2); @@ -279,6 +232,7 @@ main(int argc, char **argv) char ebuf[PCAP_ERRBUF_SIZE]; char *infile; char *cmdbuf; + pcap_if_t *devlist; pcap_t *pd; int status = 0; int pcap_fd; @@ -333,11 +287,12 @@ main(int argc, char **argv) * No interface specified; get whatever pcap_lookupdev() * finds. */ - device = pcap_lookupdev(ebuf); - if (device == NULL) { - error("couldn't find interface to use: %s", - ebuf); - } + if (pcap_findalldevs(&devlist, ebuf) == -1) + error("%s", ebuf); + if (devlist == NULL) + error("no interfaces available for capture"); + device = strdup(devlist->name); + pcap_freealldevs(devlist); } if (infile != NULL) {