diff options
author | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2011-07-01 20:07:34 +0000 |
---|---|---|
committer | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2011-07-01 20:07:34 +0000 |
commit | aeb81605de4f78baf768f7301d8674ae7998c356 (patch) | |
tree | f9fc25f44f1311aab8764e1846ba6017a989f12a /dumpcap.c | |
parent | 5f2f261f52069d08c7e911409736ae876b622ae3 (diff) |
Catch system exceptions from pcap_open_live() :)
svn path=/trunk/; revision=37857
Diffstat (limited to 'dumpcap.c')
-rw-r--r-- | dumpcap.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -637,9 +637,20 @@ open_capture_device(interface_options *interface_opts, g_log(LOG_DOMAIN_CAPTURE_CHILD, G_LOG_LEVEL_DEBUG, "pcap_open_live() calling using name %s, snaplen %d, promisc_mode %d.", interface_opts->name, interface_opts->snaplen, interface_opts->promisc_mode); +#ifdef _MSC_VER + __try { + pcap_h = pcap_open_live(interface_opts->name, interface_opts->snaplen, + interface_opts->promisc_mode, CAP_READ_TIMEOUT, + *open_err_str); + } __except(TRUE) { + g_log(LOG_DOMAIN_CAPTURE_CHILD, G_LOG_LEVEL_ERROR, "Exception from pcap_open_live(): 0x%x (0x%x)\n", GetExceptionCode(), ERROR_PROC_NOT_FOUND); + pcap_h = NULL; + } +#else pcap_h = pcap_open_live(interface_opts->name, interface_opts->snaplen, interface_opts->promisc_mode, CAP_READ_TIMEOUT, *open_err_str); +#endif g_log(LOG_DOMAIN_CAPTURE_CHILD, G_LOG_LEVEL_DEBUG, "pcap_open_live() returned %p.", (void *)pcap_h); #endif |