MFC:
[dragonfly.git] / usr.sbin / 802_11 / wpa_supplicant / events.c.patch
blob2eb491405965b636b2a3fe2ab49e1b82aececf75
1 $DragonFly: src/usr.sbin/802_11/wpa_supplicant/events.c.patch,v 1.1 2007/08/07 11:25:37 sephe Exp $
2 diff -urp wpa_supplicant-0.5.8/events.c /usr/src/contrib/wpa_supplicant-0.5.8/events.c
3 --- events.c 2007-05-29 08:39:51.000000000 +0800
4 +++ events.c 2007-07-22 12:50:20.000000000 +0800
5 @@ -802,6 +802,18 @@ wpa_supplicant_event_michael_mic_failure
9 +#ifdef CONFIG_TERMINATE_ONLASTIF
10 +static int any_interfaces(struct wpa_supplicant *head)
12 + struct wpa_supplicant *wpa_s;
14 + for (wpa_s = head; wpa_s != NULL; wpa_s = wpa_s->next)
15 + if (!wpa_s->interface_removed)
16 + return 1;
17 + return 0;
19 +#endif /* CONFIG_TERMINATE_ONLASTIF */
21 static void
22 wpa_supplicant_event_interface_status(struct wpa_supplicant *wpa_s,
23 union wpa_event_data *data)
24 @@ -826,6 +838,11 @@ wpa_supplicant_event_interface_status(st
25 wpa_supplicant_mark_disassoc(wpa_s);
26 l2_packet_deinit(wpa_s->l2);
27 wpa_s->l2 = NULL;
28 +#ifdef CONFIG_TERMINATE_ONLASTIF
29 + /* check if last interface */
30 + if (!any_interfaces(wpa_s->global->ifaces))
31 + eloop_terminate();
32 +#endif /* CONFIG_TERMINATE_ONLASTIF */
33 break;