aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Leffler <sam@FreeBSD.org>2005-07-29 05:48:00 +0000
committerSam Leffler <sam@FreeBSD.org>2005-07-29 05:48:00 +0000
commit9bd22fb964e513f7df688803352dc5c128726229 (patch)
tree53efa42b89c4a5cc6aea4c9252a5723cb6b3abe1
parent6c9f6695fd6f4ef12359cd2beccc877759bb8b5c (diff)
downloadsrc-9bd22fb964e513f7df688803352dc5c128726229.tar.gz
src-9bd22fb964e513f7df688803352dc5c128726229.zip
clear eloop registration when deinit'd the l2 packet support
MFC after: 3 days
Notes
Notes: svn path=/head/; revision=148502
-rw-r--r--usr.sbin/wpa/l2_packet.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/usr.sbin/wpa/l2_packet.c b/usr.sbin/wpa/l2_packet.c
index dae3eb7ebe9c..5304a9d51340 100644
--- a/usr.sbin/wpa/l2_packet.c
+++ b/usr.sbin/wpa/l2_packet.c
@@ -148,6 +148,16 @@ l2_packet_init_libpcap(struct l2_packet_data *l2, unsigned short protocol)
return 0;
}
+static void
+l2_packet_deinit_libpcap(struct l2_packet_data *l2)
+{
+ if (l2->pcap != NULL) {
+ eloop_unregister_read_sock(pcap_get_selectable_fd(l2->pcap));
+ pcap_close(l2->pcap);
+ l2->pcap = NULL;
+ }
+}
+
static int
eth_get(const char *device, u8 ea[ETH_ALEN])
{
@@ -220,8 +230,7 @@ void
l2_packet_deinit(struct l2_packet_data *l2)
{
if (l2 != NULL) {
- if (l2->pcap)
- pcap_close(l2->pcap);
+ l2_packet_deinit_libpcap(l2);
free(l2);
}
}