diff options
author | Sam Leffler <sam@FreeBSD.org> | 2005-07-29 05:48:00 +0000 |
---|---|---|
committer | Sam Leffler <sam@FreeBSD.org> | 2005-07-29 05:48:00 +0000 |
commit | 9bd22fb964e513f7df688803352dc5c128726229 (patch) | |
tree | 53efa42b89c4a5cc6aea4c9252a5723cb6b3abe1 /usr.sbin/wpa | |
parent | 6c9f6695fd6f4ef12359cd2beccc877759bb8b5c (diff) | |
download | src-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
Diffstat (limited to 'usr.sbin/wpa')
-rw-r--r-- | usr.sbin/wpa/l2_packet.c | 13 |
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); } } |