From b743b5c7a097ef9d21860d1ca1dfdc2b839b5ab0 Mon Sep 17 00:00:00 2001 From: Jan Lentfer Date: Fri, 5 Feb 2010 07:32:02 +0100 Subject: [PATCH] wpa_supplicant/hostapd: Added some missing patches. --- contrib/hostapd/src/utils/os_unix.c | 2 +- contrib/wpa_supplicant/src/utils/os_unix.c | 2 +- contrib/wpa_supplicant/wpa_supplicant/events.c | 17 +++++++++++++++++ usr.sbin/802_11/wpa_supplicant/Makefile | 1 - 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/contrib/hostapd/src/utils/os_unix.c b/contrib/hostapd/src/utils/os_unix.c index bc2fc40dd7..ea46094cd2 100644 --- a/contrib/hostapd/src/utils/os_unix.c +++ b/contrib/hostapd/src/utils/os_unix.c @@ -228,7 +228,7 @@ int os_setenv(const char *name, const char *value, int overwrite) int os_unsetenv(const char *name) { #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__) || \ - defined(__OpenBSD__) + defined(__OpenBSD__) || defined(__DragonFly__) unsetenv(name); return 0; #else diff --git a/contrib/wpa_supplicant/src/utils/os_unix.c b/contrib/wpa_supplicant/src/utils/os_unix.c index bc2fc40dd7..ea46094cd2 100644 --- a/contrib/wpa_supplicant/src/utils/os_unix.c +++ b/contrib/wpa_supplicant/src/utils/os_unix.c @@ -228,7 +228,7 @@ int os_setenv(const char *name, const char *value, int overwrite) int os_unsetenv(const char *name) { #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__) || \ - defined(__OpenBSD__) + defined(__OpenBSD__) || defined(__DragonFly__) unsetenv(name); return 0; #else diff --git a/contrib/wpa_supplicant/wpa_supplicant/events.c b/contrib/wpa_supplicant/wpa_supplicant/events.c index 39efeddfaf..63002a4725 100644 --- a/contrib/wpa_supplicant/wpa_supplicant/events.c +++ b/contrib/wpa_supplicant/wpa_supplicant/events.c @@ -1060,6 +1060,18 @@ wpa_supplicant_event_michael_mic_failure(struct wpa_supplicant *wpa_s, } +#ifdef CONFIG_TERMINATE_ONLASTIF +static int any_interfaces(struct wpa_supplicant *head) +{ + struct wpa_supplicant *wpa_s; + + for (wpa_s = head; wpa_s != NULL; wpa_s = wpa_s->next) + if (!wpa_s->interface_removed) + return 1; + return 0; +} +#endif /* CONFIG_TERMINATE_ONLASTIF */ + static void wpa_supplicant_event_interface_status(struct wpa_supplicant *wpa_s, union wpa_event_data *data) @@ -1084,6 +1096,11 @@ wpa_supplicant_event_interface_status(struct wpa_supplicant *wpa_s, wpa_supplicant_mark_disassoc(wpa_s); l2_packet_deinit(wpa_s->l2); wpa_s->l2 = NULL; +#ifdef CONFIG_TERMINATE_ONLASTIF + /* check if last interface */ + if (!any_interfaces(wpa_s->global->ifaces)) + eloop_terminate(); +#endif /* CONFIG_TERMINATE_ONLASTIF */ break; } } diff --git a/usr.sbin/802_11/wpa_supplicant/Makefile b/usr.sbin/802_11/wpa_supplicant/Makefile index e32d5a7b3c..30534f321e 100644 --- a/usr.sbin/802_11/wpa_supplicant/Makefile +++ b/usr.sbin/802_11/wpa_supplicant/Makefile @@ -17,7 +17,6 @@ SRCS= aes.c aes_wrap.c blacklist.c common.c config.c ctrl_iface.c \ driver_ndis.c Packet32.c \ driver_wired.c \ driver_dragonfly.c os_unix.c -#SRCS+= driver_wired.c.patch events.c.patch MAN= wpa_supplicant.8 wpa_supplicant.conf.5 -- 2.41.0