forked from osmocom/wireshark
Use the WinPcap version of pcap_datalink_val_to_description if it's
present. Add an entry for DLT_PPI in case it's not. svn path=/trunk/; revision=31316
This commit is contained in:
parent
34016ac777
commit
7046509b99
|
@ -352,6 +352,7 @@ config.h : config.h.win32 config.nmake
|
|||
-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_PCAP_DATALINK_VAL_TO_DESCRIPTION@/$(PCAP_DATALINK_VAL_TO_DESCRIPTION_CONFIG)/" \
|
||||
-e "s/@HAVE_PCAP_BREAKLOOP@/$(PCAP_BREAKLOOP_CONFIG)/" \
|
||||
-e "s/@HAVE_REMOTE@/$(PCAP_HAVE_REMOTE_CONFIG)/" \
|
||||
-e "s/@HAVE_PCAP_REMOTE@/$(PCAP_REMOTE_CONFIG)/" \
|
||||
|
|
|
@ -79,6 +79,9 @@ static int (*p_pcap_datalink_name_to_val) (const char *);
|
|||
#ifdef HAVE_PCAP_DATALINK_VAL_TO_NAME
|
||||
static const char *(*p_pcap_datalink_val_to_name) (int);
|
||||
#endif
|
||||
#ifdef HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION
|
||||
static const char *(*p_pcap_datalink_val_to_description) (int);
|
||||
#endif
|
||||
#ifdef HAVE_PCAP_BREAKLOOP
|
||||
static void (*p_pcap_breakloop) (pcap_t *);
|
||||
#endif
|
||||
|
@ -155,6 +158,9 @@ load_wpcap(void)
|
|||
#ifdef HAVE_PCAP_DATALINK_VAL_TO_NAME
|
||||
SYM(pcap_datalink_val_to_name, TRUE),
|
||||
#endif
|
||||
#ifdef HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION
|
||||
SYM(pcap_datalink_val_to_description, TRUE),
|
||||
#endif
|
||||
#ifdef HAVE_PCAP_BREAKLOOP
|
||||
/*
|
||||
* We don't try to work around the lack of this at
|
||||
|
@ -371,7 +377,7 @@ pcap_freealldevs(pcap_if_t *a)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_PCAP_DATALINK_NAME_TO_VAL) || defined(HAVE_PCAP_DATALINK_VAL_TO_NAME)
|
||||
#if defined(HAVE_PCAP_DATALINK_NAME_TO_VAL) || defined(HAVE_PCAP_DATALINK_VAL_TO_NAME) || defined(HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION)
|
||||
/*
|
||||
* Table of DLT_ types, names, and descriptions, for use if the version
|
||||
* of WinPcap we have installed lacks "pcap_datalink_name_to_val()"
|
||||
|
@ -464,10 +470,13 @@ static struct dlt_choice dlt_choices[] = {
|
|||
#endif
|
||||
#ifdef DLT_HDLC
|
||||
DLT_CHOICE(DLT_HDLC, "Cisco HDLC"),
|
||||
#endif
|
||||
#ifdef DLT_PPI
|
||||
DLT_CHOICE(DLT_PPI, "Per-Packet Information"),
|
||||
#endif
|
||||
DLT_CHOICE_SENTINEL
|
||||
};
|
||||
#endif /* defined(HAVE_PCAP_DATALINK_NAME_TO_VAL) || defined(HAVE_PCAP_DATALINK_VAL_TO_NAME) */
|
||||
#endif /* defined(HAVE_PCAP_DATALINK_NAME_TO_VAL) || defined(HAVE_PCAP_DATALINK_VAL_TO_NAME) || defined(HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION */
|
||||
|
||||
#ifdef HAVE_PCAP_DATALINK_NAME_TO_VAL
|
||||
int
|
||||
|
@ -544,6 +553,29 @@ pcap_datalink_val_to_name(int dlt)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION
|
||||
const char *
|
||||
pcap_datalink_val_to_description(int dlt)
|
||||
{
|
||||
int i;
|
||||
|
||||
g_assert(has_wpcap);
|
||||
|
||||
if (p_pcap_datalink_val_to_description != NULL)
|
||||
return p_pcap_datalink_val_to_description(dlt);
|
||||
else {
|
||||
/*
|
||||
* We don't have it in WinPcap; do it ourselves.
|
||||
*/
|
||||
for (i = 0; dlt_choices[i].name != NULL; i++) {
|
||||
if (dlt_choices[i].dlt == dlt)
|
||||
return (dlt_choices[i].description);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PCAP_BREAKLOOP
|
||||
void pcap_breakloop(pcap_t *a)
|
||||
{
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
@HAVE_PCAP_FINDALLDEVS@
|
||||
@HAVE_PCAP_DATALINK_NAME_TO_VAL@
|
||||
@HAVE_PCAP_DATALINK_VAL_TO_NAME@
|
||||
@HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION@
|
||||
@HAVE_LIBWIRESHARKDLL@
|
||||
|
||||
@HAVE_PCAP_LIST_DATALINKS@
|
||||
|
|
|
@ -938,6 +938,7 @@ WINPCAP_CONFIG=^#define HAVE_LIBPCAP 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
|
||||
PCAP_DATALINK_VAL_TO_DESCRIPTION_CONFIG=^#define HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION 1
|
||||
# PCAP_BREAKLOOP won't have any benefit on Win32, but breaks compatibility with 3.0
|
||||
PCAP_BREAKLOOP_CONFIG=
|
||||
!ELSE
|
||||
|
@ -946,6 +947,7 @@ WINPCAP_CONFIG=
|
|||
PCAP_FINDALLDEVS_CONFIG=
|
||||
PCAP_DATALINK_NAME_TO_VAL_CONFIG=
|
||||
PCAP_DATALINK_VAL_TO_NAME_CONFIG=
|
||||
PCAP_DATALINK_VAL_TO_DESCRIPTION_CONFIG=
|
||||
PCAP_BREAKLOOP_CONFIG=
|
||||
!ENDIF
|
||||
|
||||
|
|
Loading…
Reference in New Issue