aboutsummaryrefslogtreecommitdiff
path: root/pcap-win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'pcap-win32.c')
-rw-r--r--pcap-win32.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/pcap-win32.c b/pcap-win32.c
index 1b15eec8..8722517f 100644
--- a/pcap-win32.c
+++ b/pcap-win32.c
@@ -32,7 +32,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/libpcap/pcap-win32.c,v 1.8 2003-05-15 14:30:30 risso Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/libpcap/pcap-win32.c,v 1.9 2003-07-25 03:25:47 guy Exp $ (LBL)";
#endif
#include <pcap-int.h>
@@ -137,6 +137,17 @@ pcap_read(pcap_t *p, int cnt, pcap_handler callback, u_char *user)
}
+static void
+pcap_close_win32(pcap_t *p)
+{
+ if (p->buffer != NULL)
+ free(p->buffer);
+ if (p->adapter != NULL) {
+ PacketCloseAdapter(p->adapter);
+ p->adapter = NULL;
+ }
+}
+
pcap_t *
pcap_open_live(const char *device, int snaplen, int promisc, int to_ms,
char *ebuf)
@@ -243,6 +254,8 @@ pcap_open_live(const char *device, int snaplen, int promisc, int to_ms,
PacketSetReadTimeout(p->adapter, to_ms);
+ p->close_op = pcap_close_win32;
+
return (p);
bad:
if (p->adapter)