From Gisle Vanem: add support for pcap_datalink_val_to_name() for Win32.

Also add support for pcap_datalink_name_to_val(), and arrange that we
properly define HAVE_PCAP_DATALINK_NAME_TO_VAL and
HAVE_PCAP_DATALINK_VAL_TO_NAME for MSVC++ builds.

svn path=/trunk/; revision=12073
This commit is contained in:
Guy Harris 2004-09-23 17:54:49 +00:00
parent 285066ac5b
commit 29753bf6b2
4 changed files with 39 additions and 0 deletions

View File

@ -209,6 +209,8 @@ config.h : config.h.win32 config.nmake
-e "s/@HAVE_LIBZ@/$(ZLIB_CONFIG)/" \
-e "s/@HAVE_LIBPCAP@/$(WINPCAP_CONFIG)/" \
-e "s/@HAVE_PCAP_FINDALLDEVS@/$(PCAP_FINDALLDEVS_CONFIG)/" \
-e "s/@HAVE_PCAP_DATALINK_NAME_TO_VAL@/$(PCAP_DATALINK_NAME_TO_VAL_CONFIG)/" \
-e "s/@HAVE_PCAP_DATALINK_VAL_TO_NAME@/$(PCAP_DATALINK_VAL_TO_NAME_CONFIG)/" \
-e "s/@HAVE_LIBETHEREALDLL@/$(LIBETHEREAL_CONFIG)/" \
-e "s/@WPCAP_CONSTIFIED@/$(WPCAP_CONSTIFIED_CONFIG)/" \
-e "s/@HAVE_LIBETHEREALDLL@/$(LIBETHEREAL_CONFIG)/" \

View File

@ -69,6 +69,12 @@ static int (*p_pcap_loop) (pcap_t *, int, pcap_handler, guchar *);
static int (*p_pcap_findalldevs) (pcap_if_t **, char *);
static void (*p_pcap_freealldevs) (pcap_if_t *);
#endif
#ifdef HAVE_PCAP_DATALINK_NAME_TO_VAL
static const char *(*p_pcap_datalink_name_to_val) (int);
#endif
#ifdef HAVE_PCAP_DATALINK_VAL_TO_NAME
static const char *(*p_pcap_datalink_val_to_name) (int);
#endif
static const char *(*p_pcap_lib_version) (void);
static int (*p_pcap_setbuff) (pcap_t *, int dim);
@ -101,6 +107,12 @@ load_wpcap(void)
#ifdef HAVE_PCAP_FINDALLDEVS
SYM(pcap_findalldevs, TRUE),
SYM(pcap_freealldevs, TRUE),
#endif
#ifdef HAVE_PCAP_DATALINK_NAME_TO_VAL
SYM(pcap_datalink_name_to_val, TRUE),
#endif
#ifdef HAVE_PCAP_DATALINK_VAL_TO_NAME
SYM(pcap_datalink_val_to_name, TRUE),
#endif
SYM(pcap_lib_version, TRUE),
SYM(pcap_setbuff, TRUE),
@ -250,6 +262,24 @@ pcap_freealldevs(pcap_if_t *a)
}
#endif
#ifdef HAVE_PCAP_DATALINK_NAME_TO_VAL
int
pcap_datalink_name_to_val(const char *name)
{
g_assert(has_wpcap && p_pcap_datalink_name_to_val != NULL);
return p_pcap_datalink_name_to_val(dlt);
}
#endif
#ifdef HAVE_PCAP_DATALINK_VAL_TO_NAME
const char *
pcap_datalink_val_to_name(int dlt)
{
g_assert(has_wpcap && p_pcap_datalink_val_to_name != NULL);
return p_pcap_datalink_val_to_name(dlt);
}
#endif
/* setbuff is win32 specific! */
int pcap_setbuff(pcap_t *a, int b)
{

View File

@ -43,6 +43,8 @@
@HAVE_LIBPCAP@
@HAVE_PCAP_FINDALLDEVS@
@HAVE_PCAP_DATALINK_NAME_TO_VAL@
@HAVE_PCAP_DATALINK_VAL_TO_NAME@
@WPCAP_CONSTIFIED@
@HAVE_LIBETHEREALDLL@

View File

@ -262,14 +262,19 @@ GTK2_LIBS=$(GTK2_DIR)\lib\gtk-win32-2.0.lib \
WINPCAP_CONFIG=^#define HAVE_LIBPCAP 1
!IF "$(WINPCAP_VERSION)" == "3.0" || "$(WINPCAP_VERSION)" == "3.1"
PCAP_FINDALLDEVS_CONFIG=^#define HAVE_PCAP_FINDALLDEVS 1
PCAP_DATALINK_NAME_TO_VAL_CONFIG=^#define HAVE_PCAP_DATALINK_NAME_TO_VAL 1
PCAP_DATALINK_VAL_TO_NAME_CONFIG=^#define HAVE_PCAP_DATALINK_VAL_TO_NAME 1
WPCAP_CONSTIFIED_CONFIG=^#define WPCAP_CONSTIFIED 1
!ELSE
PCAP_FINDALLDEVS_CONFIG=
PCAP_DATALINK_VAL_TO_NAME_CONFIG=
WPCAP_CONSTIFIED=
!ENDIF
!ELSE
WINPCAP_CONFIG=
PCAP_FINDALLDEVS_CONFIG=
PCAP_DATALINK_NAME_TO_VAL_CONFIG=
PCAP_DATALINK_VAL_TO_NAME_CONFIG=
WPCAP_CONSTIFIED=
!ENDIF