aboutsummaryrefslogtreecommitdiff
path: root/pcap.c
diff options
context:
space:
mode:
Diffstat (limited to 'pcap.c')
-rw-r--r--pcap.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/pcap.c b/pcap.c
index 4330fd39..c8de76d7 100644
--- a/pcap.c
+++ b/pcap.c
@@ -33,7 +33,7 @@
#ifndef lint
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
#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_t *p;
- int err;
+ int status;
p = pcap_create(source, errbuf);
if (p == NULL)
return (NULL);
- err = pcap_set_snaplen(p, snaplen);
- if (err < 0)
+ status = pcap_set_snaplen(p, snaplen);
+ if (status < 0)
goto fail;
- err = pcap_set_promisc(p, promisc);
- if (err < 0)
+ status = pcap_set_promisc(p, promisc);
+ if (status < 0)
goto fail;
- err = pcap_set_timeout(p, to_ms);
- if (err < 0)
+ status = pcap_set_timeout(p, to_ms);
+ if (status < 0)
goto fail;
/*
* 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.
*/
p->oldstyle = 1;
- err = pcap_activate(p);
- if (err < 0)
+ status = pcap_activate(p);
+ if (status < 0)
goto fail;
return (p);
fail:
- if (err == PCAP_ERROR || err == PCAP_ERROR_NO_SUCH_DEVICE ||
- err == PCAP_ERROR_PERM_DENIED)
+ if (status == PCAP_ERROR || status == PCAP_ERROR_NO_SUCH_DEVICE ||
+ status == PCAP_ERROR_PERM_DENIED)
strlcpy(errbuf, p->errbuf, PCAP_ERRBUF_SIZE);
else
snprintf(errbuf, PCAP_ERRBUF_SIZE, "%s: %s", source,
- pcap_errtostr(err));
+ pcap_statustostr(status));
pcap_close(p);
return (NULL);
}
@@ -893,15 +893,21 @@ pcap_win32strerror(void)
#endif
/*
- * Generate error strings for PCAP_ERROR_ values.
+ * Generate error strings for PCAP_ERROR_ and PCAP_WARNING_ values.
*/
const char *
-pcap_errtostr(int errnum)
+pcap_statustostr(int errnum)
{
static char ebuf[15+10+1];
switch (errnum) {
+ case PCAP_WARNING:
+ return("Generic warning");
+
+ case PCAP_WARNING_PROMISC_NOTSUP:
+ return ("That device doesn't support promiscuous mode");
+
case PCAP_ERROR:
return("Generic error");