aboutsummaryrefslogtreecommitdiff
path: root/pcap-libdlpi.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2010-09-21 02:46:53 -0700
committerGuy Harris <guy@alum.mit.edu>2010-09-21 02:46:53 -0700
commit4d7214cbc5dcc8e9635f99c13367dea37eddda0f (patch)
treeb90d8bc31a6fb418b72caaeaa1ad1a9b37366c6b /pcap-libdlpi.c
parent74b7b4259fde15dbb07cde3a5920e9f7e0ed4484 (diff)
downloadlibpcap-4d7214cbc5dcc8e9635f99c13367dea37eddda0f.tar.gz
Treat either EPERM or EACCES as "no soup for you".
Diffstat (limited to 'pcap-libdlpi.c')
-rw-r--r--pcap-libdlpi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/pcap-libdlpi.c b/pcap-libdlpi.c
index 56dadc4f..8d6a0386 100644
--- a/pcap-libdlpi.c
+++ b/pcap-libdlpi.c
@@ -115,7 +115,8 @@ pcap_activate_libdlpi(pcap_t *p)
if (retv != DLPI_SUCCESS) {
if (retv == DLPI_ELINKNAMEINVAL || retv == DLPI_ENOLINK)
err = PCAP_ERROR_NO_SUCH_DEVICE;
- else if (retv == DL_SYSERR && errno == EACCES)
+ else if (retv == DL_SYSERR &&
+ (errno == EPERM || errno == EACCES))
err = PCAP_ERROR_PERM_DENIED;
pcap_libdlpi_err(p->opt.source, "dlpi_open", retv,
p->errbuf);
@@ -238,7 +239,8 @@ dlpromiscon(pcap_t *p, bpf_u_int32 level)
retv = dlpi_promiscon(p->hd, level);
if (retv != DLPI_SUCCESS) {
- if (retv == DL_SYSERR && errno == EACCES)
+ if (retv == DL_SYSERR &&
+ (errno == EPERM || errno == EACCES))
err = PCAP_ERROR_PERM_DENIED;
else
err = PCAP_ERROR;