dect
/
libpcap
Archived
13
0
Fork 0

Rename pcap_errtostr() to pcap_statustostr(), and have it handle

PCAP_WARNING values as well.
This commit is contained in:
guy 2008-04-09 21:39:21 +00:00
parent a590c21380
commit c6aa29a8dc
5 changed files with 34 additions and 26 deletions

4
FILES
View File

@ -1,4 +1,4 @@
CHANGES HANGES
ChmodBPF/ChmodBPF ChmodBPF/ChmodBPF
ChmodBPF/StartupParameters.plist ChmodBPF/StartupParameters.plist
CREDITS CREDITS
@ -133,7 +133,6 @@ pcap_dump_file.3pcap
pcap_dump_flush.3pcap pcap_dump_flush.3pcap
pcap_dump_ftell.3pcap pcap_dump_ftell.3pcap
pcap_dump_open.3pcap pcap_dump_open.3pcap
pcap_errtostr.3pcap
pcap_file.3pcap pcap_file.3pcap
pcap_fileno.3pcap pcap_fileno.3pcap
pcap_findalldevs.3pcap pcap_findalldevs.3pcap
@ -164,6 +163,7 @@ pcap_setfilter.3pcap
pcap_setnonblock.3pcap pcap_setnonblock.3pcap
pcap_snapshot.3pcap pcap_snapshot.3pcap
pcap_stats.3pcap pcap_stats.3pcap
pcap_statustostr.3pcap
pcap_strerror.3pcap pcap_strerror.3pcap
pcap-filter.4 pcap-filter.4
pcap-linktype.4 pcap-linktype.4

View File

@ -17,7 +17,7 @@
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
# #
# @(#) $Header: /tcpdump/master/libpcap/Makefile.in,v 1.117 2008-04-06 20:22:13 guy Exp $ (LBL) # @(#) $Header: /tcpdump/master/libpcap/Makefile.in,v 1.118 2008-04-09 21:39:21 guy Exp $ (LBL)
# #
# Various configurable paths (remember to edit Makefile.in, not Makefile) # Various configurable paths (remember to edit Makefile.in, not Makefile)
@ -115,7 +115,6 @@ MAN3PCAP = pcap.3pcap \
pcap_dump_flush.3pcap \ pcap_dump_flush.3pcap \
pcap_dump_ftell.3pcap \ pcap_dump_ftell.3pcap \
pcap_dump_open.3pcap \ pcap_dump_open.3pcap \
pcap_errtostr.3pcap \
pcap_file.3pcap \ pcap_file.3pcap \
pcap_fileno.3pcap \ pcap_fileno.3pcap \
pcap_findalldevs.3pcap \ pcap_findalldevs.3pcap \
@ -146,6 +145,7 @@ MAN3PCAP = pcap.3pcap \
pcap_setnonblock.3pcap \ pcap_setnonblock.3pcap \
pcap_snapshot.3pcap \ pcap_snapshot.3pcap \
pcap_stats.3pcap \ pcap_stats.3pcap \
pcap_statustostr.3pcap \
pcap_strerror.3pcap pcap_strerror.3pcap
MAN4 = pcap-filter.4 \ MAN4 = pcap-filter.4 \

36
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.118 2008-04-09 21:26:12 guy Exp $ (LBL)"; "@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.119 2008-04-09 21:39:21 guy Exp $ (LBL)";
#endif #endif
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -223,19 +223,19 @@ pcap_t *
pcap_open_live(const char *source, int snaplen, int promisc, int to_ms, char *errbuf) pcap_open_live(const char *source, int snaplen, int promisc, int to_ms, char *errbuf)
{ {
pcap_t *p; pcap_t *p;
int err; int status;
p = pcap_create(source, errbuf); p = pcap_create(source, errbuf);
if (p == NULL) if (p == NULL)
return (NULL); return (NULL);
err = pcap_set_snaplen(p, snaplen); status = pcap_set_snaplen(p, snaplen);
if (err < 0) if (status < 0)
goto fail; goto fail;
err = pcap_set_promisc(p, promisc); status = pcap_set_promisc(p, promisc);
if (err < 0) if (status < 0)
goto fail; goto fail;
err = pcap_set_timeout(p, to_ms); status = pcap_set_timeout(p, to_ms);
if (err < 0) if (status < 0)
goto fail; goto fail;
/* /*
* Mark this as opened with pcap_open_live(), so that, for * Mark this as opened with pcap_open_live(), so that, for
@ -248,17 +248,17 @@ pcap_open_live(const char *source, int snaplen, int promisc, int to_ms, char *er
* the adapter is in monitor mode or not. * the adapter is in monitor mode or not.
*/ */
p->oldstyle = 1; p->oldstyle = 1;
err = pcap_activate(p); status = pcap_activate(p);
if (err < 0) if (status < 0)
goto fail; goto fail;
return (p); return (p);
fail: fail:
if (err == PCAP_ERROR || err == PCAP_ERROR_NO_SUCH_DEVICE || if (status == PCAP_ERROR || status == PCAP_ERROR_NO_SUCH_DEVICE ||
err == PCAP_ERROR_PERM_DENIED) status == PCAP_ERROR_PERM_DENIED)
strlcpy(errbuf, p->errbuf, PCAP_ERRBUF_SIZE); strlcpy(errbuf, p->errbuf, PCAP_ERRBUF_SIZE);
else else
snprintf(errbuf, PCAP_ERRBUF_SIZE, "%s: %s", source, snprintf(errbuf, PCAP_ERRBUF_SIZE, "%s: %s", source,
pcap_errtostr(err)); pcap_statustostr(status));
pcap_close(p); pcap_close(p);
return (NULL); return (NULL);
} }
@ -893,15 +893,21 @@ pcap_win32strerror(void)
#endif #endif
/* /*
* Generate error strings for PCAP_ERROR_ values. * Generate error strings for PCAP_ERROR_ and PCAP_WARNING_ values.
*/ */
const char * const char *
pcap_errtostr(int errnum) pcap_statustostr(int errnum)
{ {
static char ebuf[15+10+1]; static char ebuf[15+10+1];
switch (errnum) { switch (errnum) {
case PCAP_WARNING:
return("Generic warning");
case PCAP_WARNING_PROMISC_NOTSUP:
return ("That device doesn't support promiscuous mode");
case PCAP_ERROR: case PCAP_ERROR:
return("Generic error"); return("Generic error");

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/pcap.h,v 1.9 2008-04-09 21:26:12 guy Exp $ (LBL) * @(#) $Header: /tcpdump/master/libpcap/pcap/pcap.h,v 1.10 2008-04-09 21:39:21 guy Exp $ (LBL)
*/ */
#ifndef lib_pcap_pcap_h #ifndef lib_pcap_pcap_h
@ -279,7 +279,7 @@ int pcap_getnonblock(pcap_t *, char *);
int pcap_setnonblock(pcap_t *, int, char *); int pcap_setnonblock(pcap_t *, int, char *);
int pcap_inject(pcap_t *, const void *, size_t); int pcap_inject(pcap_t *, const void *, size_t);
int pcap_sendpacket(pcap_t *, const u_char *, int); int pcap_sendpacket(pcap_t *, const u_char *, int);
const char *pcap_errtostr(int); const char *pcap_statustostr(int);
const char *pcap_strerror(int); const char *pcap_strerror(int);
char *pcap_geterr(pcap_t *); char *pcap_geterr(pcap_t *);
void pcap_perror(pcap_t *, char *); void pcap_perror(pcap_t *, char *);

View File

@ -1,4 +1,4 @@
.\" @(#) $Header: /tcpdump/master/libpcap/Attic/pcap_errtostr.3pcap,v 1.1 2008-04-06 19:55:33 guy Exp $ .\" @(#) $Header: /tcpdump/master/libpcap/pcap_statustostr.3pcap,v 1.1 2008-04-09 21:39:21 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.
@ -19,9 +19,9 @@
.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
.\" .\"
.TH PCAP_ERRTOSTR 3PCAP "6 April 2008" .TH PCAP_STATUSTOSTR 3PCAP "9 April 2008"
.SH NAME .SH NAME
pcap_errtostr \- convert a PCAP_ERROR_ value to a string pcap_statustostr \- convert a PCAP_ERROR_ or PCAP_WARNING_ value to a string
.SH SYNOPSIS .SH SYNOPSIS
.nf .nf
.ft B .ft B
@ -29,13 +29,15 @@ pcap_errtostr \- convert a PCAP_ERROR_ value to a string
.ft .ft
.LP .LP
.ft B .ft B
const char *pcap_errtostr(int error); const char *pcap_statustostr(int error);
.ft .ft
.fi .fi
.SH DESCRIPTION .SH DESCRIPTION
.B pcap_errtostr() .B pcap_statustostr()
converts a converts a
.B PCAP_ERROR_ .B PCAP_ERROR_
or
.B PCAP_WARNING_
value returned by a libpcap routine to an error string. value returned by a libpcap routine to an error string.
.SH SEE ALSO .SH SEE ALSO
pcap(3PCAP) pcap(3PCAP)