aboutsummaryrefslogtreecommitdiffstats
path: root/dumpcap.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2010-05-18 01:48:46 +0000
committerGuy Harris <guy@alum.mit.edu>2010-05-18 01:48:46 +0000
commitc58680fd40f082c7cb383d55abe8b8f600fe7555 (patch)
tree7f3b04b241aad3992a647a87bf9438c718bc6d4c /dumpcap.c
parente3038273ca52079210956829d78454eeaaf7671b (diff)
Only negative return values from pcap_activate() are errors; positive
return values are success-with-a-warning. Report those errors with a string. svn path=/trunk/; revision=32852
Diffstat (limited to 'dumpcap.c')
-rw-r--r--dumpcap.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/dumpcap.c b/dumpcap.c
index 8f88127cb9..80c7093806 100644
--- a/dumpcap.c
+++ b/dumpcap.c
@@ -1723,10 +1723,10 @@ capture_loop_open_input(capture_options *capture_opts, loop_data *ld,
gchar *sync_msg_str;
static const char ppamsg[] = "can't find PPA for ";
const char *set_linktype_err_str;
- const char *libpcap_warn;
+ const char *libpcap_warn;
+ int err;
#ifdef _WIN32
gchar *sync_secondary_msg_str;
- int err;
WORD wVersionRequested;
WSADATA wsaData;
#endif
@@ -1830,8 +1830,13 @@ capture_loop_open_input(capture_options *capture_opts, loop_data *ld,
}
if (capture_opts->monitor_mode)
pcap_set_rfmon(ld->pcap_h, 1);
- if (pcap_activate(ld->pcap_h) != 0) {
+ err = pcap_activate(ld->pcap_h);
+ if (err < 0) {
/* Failed to activate, set to NULL */
+ if (err == PCAP_ERROR)
+ g_strlcpy(open_err_str, pcap_geterr(ld->pcap_h), sizeof open_err_str);
+ else
+ g_strlcpy(open_err_str, pcap_statustostr(err), sizeof open_err_str);
pcap_close(ld->pcap_h);
ld->pcap_h = NULL;
}