dect
/
libpcap
Archived
13
0
Fork 0

Add "pcap_datalink_val_to_description()", which returns, for a DLT_

type, a short description intended for humans.

Fix up some man page typoes.
This commit is contained in:
guy 2003-11-18 22:14:24 +00:00
parent 086bf17b56
commit ba73faeef3
3 changed files with 55 additions and 38 deletions

15
pcap.3
View File

@ -1,4 +1,4 @@
.\" @(#) $Header: /tcpdump/master/libpcap/Attic/pcap.3,v 1.53 2003-11-18 21:51:11 guy Exp $ .\" @(#) $Header: /tcpdump/master/libpcap/Attic/pcap.3,v 1.54 2003-11-18 22:14:24 guy Exp $
.\" .\"
.\" Copyright (c) 1994, 1996, 1997 .\" Copyright (c) 1994, 1996, 1997
.\" The Regents of the University of California. All rights reserved. .\" The Regents of the University of California. All rights reserved.
@ -93,6 +93,7 @@ int pcap_list_datalinks(pcap_t *p, int **dlt_buf);
int pcap_set_datalink(pcap_t *p, int dlt); int pcap_set_datalink(pcap_t *p, int dlt);
int pcap_datalink_name_to_val(const char *name); int pcap_datalink_name_to_val(const char *name);
const char *pcap_datalink_val_to_name(int dlt); const char *pcap_datalink_val_to_name(int dlt);
const char *pcap_datalink_val_to_description(int dlt);
int pcap_snapshot(pcap_t *p) int pcap_snapshot(pcap_t *p)
int pcap_is_swapped(pcap_t *p) int pcap_is_swapped(pcap_t *p)
int pcap_major_version(pcap_t *p) int pcap_major_version(pcap_t *p)
@ -982,14 +983,16 @@ name with the
.B DLT_ .B DLT_
removed, to the corresponding data link type value. The translation removed, to the corresponding data link type value. The translation
is case-insensitive. is case-insensitive.
is used to set the current data link type of the pcap descriptor .B \-1
NULL is returned on failure. is returned on failure.
.PP .PP
.B pcap_datalink_val_to_name() .B pcap_datalink_val_to_name()
translates a data link type value to the corresponding data link type translates a data link type value to the corresponding data link type
name. name. NULL is returned on failure.
.B \-1 .PP
is returned on failure. .B pcap_datalink_val_to_description()
translates a data link type value to a short description of that data
link type. NULL is returned on failure.
.PP .PP
.B pcap_snapshot() .B pcap_snapshot()
returns the snapshot length specified when returns the snapshot length specified when

75
pcap.c
View File

@ -33,7 +33,7 @@
#ifndef lint #ifndef lint
static const char rcsid[] _U_ = static const char rcsid[] _U_ =
"@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.65 2003-11-18 21:06:51 guy Exp $ (LBL)"; "@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.66 2003-11-18 22:14:24 guy Exp $ (LBL)";
#endif #endif
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -291,41 +291,42 @@ unsupported:
struct dlt_choice { struct dlt_choice {
const char *name; const char *name;
const char *description;
int dlt; int dlt;
}; };
#define DLT_CHOICE(code) { #code, code } #define DLT_CHOICE(code, description) { #code, description, code }
#define DLT_CHOICE_SENTINEL { NULL, 0 } #define DLT_CHOICE_SENTINEL { NULL, NULL, 0 }
static struct dlt_choice dlt_choices[] = { static struct dlt_choice dlt_choices[] = {
DLT_CHOICE(DLT_NULL), DLT_CHOICE(DLT_NULL, "BSD loopback"),
DLT_CHOICE(DLT_EN10MB), DLT_CHOICE(DLT_EN10MB, "Ethernet"),
DLT_CHOICE(DLT_IEEE802), DLT_CHOICE(DLT_IEEE802, "Token ring"),
DLT_CHOICE(DLT_ARCNET), DLT_CHOICE(DLT_ARCNET, "ARCNET"),
DLT_CHOICE(DLT_SLIP), DLT_CHOICE(DLT_SLIP, "SLIP"),
DLT_CHOICE(DLT_PPP), DLT_CHOICE(DLT_PPP, "PPP"),
DLT_CHOICE(DLT_FDDI), DLT_CHOICE(DLT_FDDI, "FDDI"),
DLT_CHOICE(DLT_ATM_RFC1483), DLT_CHOICE(DLT_ATM_RFC1483, "RFC 1483 IP-over-ATM"),
DLT_CHOICE(DLT_RAW), DLT_CHOICE(DLT_RAW, "Raw IP"),
DLT_CHOICE(DLT_SLIP_BSDOS), DLT_CHOICE(DLT_SLIP_BSDOS, "BSD/OS SLIP"),
DLT_CHOICE(DLT_PPP_BSDOS), DLT_CHOICE(DLT_PPP_BSDOS, "BSD/OS PPP"),
DLT_CHOICE(DLT_ATM_CLIP), DLT_CHOICE(DLT_ATM_CLIP, "Linux Classical IP-over-ATM"),
DLT_CHOICE(DLT_PPP_SERIAL), DLT_CHOICE(DLT_PPP_SERIAL, "PPP over serial"),
DLT_CHOICE(DLT_PPP_ETHER), DLT_CHOICE(DLT_PPP_ETHER, "PPPoE"),
DLT_CHOICE(DLT_C_HDLC), DLT_CHOICE(DLT_C_HDLC, "Cisco HDLC"),
DLT_CHOICE(DLT_IEEE802_11), DLT_CHOICE(DLT_IEEE802_11, "802.11"),
DLT_CHOICE(DLT_FRELAY), DLT_CHOICE(DLT_FRELAY, "Frame Relay"),
DLT_CHOICE(DLT_LOOP), DLT_CHOICE(DLT_LOOP, "OpenBSD loopback"),
DLT_CHOICE(DLT_ENC), DLT_CHOICE(DLT_ENC, "OpenBSD encapsulated IP"),
DLT_CHOICE(DLT_LINUX_SLL), DLT_CHOICE(DLT_LINUX_SLL, "Linux cooked"),
DLT_CHOICE(DLT_LTALK), DLT_CHOICE(DLT_LTALK, "Localtalk"),
DLT_CHOICE(DLT_PFLOG), DLT_CHOICE(DLT_PFLOG, "OpenBSD pflog file"),
DLT_CHOICE(DLT_PRISM_HEADER), DLT_CHOICE(DLT_PRISM_HEADER, "802.11 plus Prism header"),
DLT_CHOICE(DLT_IP_OVER_FC), DLT_CHOICE(DLT_IP_OVER_FC, "RFC 2625 IP-over-Fibre Channel"),
DLT_CHOICE(DLT_SUNATM), DLT_CHOICE(DLT_SUNATM, "Sun raw ATM"),
DLT_CHOICE(DLT_IEEE802_11_RADIO), DLT_CHOICE(DLT_IEEE802_11_RADIO, "802.11 plus radio information header"),
DLT_CHOICE(DLT_ARCNET_LINUX), DLT_CHOICE(DLT_ARCNET_LINUX, "Linux ARCNET"),
DLT_CHOICE(DLT_LINUX_IRDA), DLT_CHOICE(DLT_LINUX_IRDA, "Linux IrDA"),
DLT_CHOICE_SENTINEL DLT_CHOICE_SENTINEL
}; };
@ -439,6 +440,18 @@ pcap_datalink_val_to_name(int dlt)
return (NULL); return (NULL);
} }
const char *
pcap_datalink_val_to_description(int dlt)
{
int i;
for (i = 0; dlt_choices[i].name != NULL; i++) {
if (dlt_choices[i].dlt == dlt)
return (dlt_choices[i].description);
}
return (NULL);
}
int int
pcap_snapshot(pcap_t *p) pcap_snapshot(pcap_t *p)
{ {

3
pcap.h
View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* @(#) $Header: /tcpdump/master/libpcap/pcap.h,v 1.46 2003-11-16 10:07:36 guy Exp $ (LBL) * @(#) $Header: /tcpdump/master/libpcap/pcap.h,v 1.47 2003-11-18 22:14:25 guy Exp $ (LBL)
*/ */
#ifndef lib_pcap_h #ifndef lib_pcap_h
@ -196,6 +196,7 @@ int pcap_list_datalinks(pcap_t *, int **);
int pcap_set_datalink(pcap_t *, int); int pcap_set_datalink(pcap_t *, int);
int pcap_datalink_name_to_val(const char *); int pcap_datalink_name_to_val(const char *);
const char *pcap_datalink_val_to_name(int); const char *pcap_datalink_val_to_name(int);
const char *pcap_datalink_val_to_description(int);
int pcap_snapshot(pcap_t *); int pcap_snapshot(pcap_t *);
int pcap_is_swapped(pcap_t *); int pcap_is_swapped(pcap_t *);
int pcap_major_version(pcap_t *); int pcap_major_version(pcap_t *);