diff options
author | Guy Harris <guy@alum.mit.edu> | 2010-05-18 01:48:46 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2010-05-18 01:48:46 +0000 |
commit | c58680fd40f082c7cb383d55abe8b8f600fe7555 (patch) | |
tree | 7f3b04b241aad3992a647a87bf9438c718bc6d4c /dumpcap.c | |
parent | e3038273ca52079210956829d78454eeaaf7671b (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.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -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; } |