diff options
Diffstat (limited to 'package')
| -rw-r--r-- | package/network/services/hostapd/patches/620-scan_wait.patch | 73 | 
1 files changed, 73 insertions, 0 deletions
| diff --git a/package/network/services/hostapd/patches/620-scan_wait.patch b/package/network/services/hostapd/patches/620-scan_wait.patch new file mode 100644 index 000000000..5dd874ac0 --- /dev/null +++ b/package/network/services/hostapd/patches/620-scan_wait.patch @@ -0,0 +1,73 @@ +--- a/hostapd/main.c ++++ b/hostapd/main.c +@@ -32,6 +32,8 @@ + extern int wpa_debug_level; + extern int wpa_debug_show_keys; + extern int wpa_debug_timestamp; ++static int daemonize = 0; ++static char *pid_file = NULL; +  + extern struct wpa_driver_ops *wpa_drivers[]; +  +@@ -279,6 +281,14 @@ static int hostapd_driver_init(struct ho + 	return 0; + } +  ++static void hostapd_setup_complete_cb(void *ctx) ++{ ++	if (daemonize && os_daemonize(pid_file)) { ++		perror("daemon"); ++		return; ++	} ++	daemonize = 0; ++} +  + static struct hostapd_iface * + hostapd_interface_init(struct hapd_interfaces *interfaces, +@@ -298,6 +308,7 @@ hostapd_interface_init(struct hapd_inter + 			iface->bss[0]->conf->logger_stdout_level--; + 	} +  ++	iface->bss[0]->setup_complete_cb = hostapd_setup_complete_cb; + 	if (iface->conf->bss[0].iface[0] != 0 || + 	    hostapd_drv_none(iface->bss[0])) { + 		if (hostapd_driver_init(iface) || +@@ -310,7 +321,6 @@ hostapd_interface_init(struct hapd_inter + 	return iface; + } +  +- + /** +  * handle_term - SIGINT and SIGTERM handler to terminate hostapd process +  */ +@@ -425,8 +435,6 @@ static void hostapd_global_deinit(const  + #endif /* CONFIG_NATIVE_WINDOWS */ +  + 	eap_server_unregister_methods(); +- +-	os_daemonize_terminate(pid_file); + } +  +  +@@ -452,11 +460,6 @@ static int hostapd_global_run(struct hap + 	} + #endif /* EAP_SERVER_TNC */ +  +-	if (daemonize && os_daemonize(pid_file)) { +-		perror("daemon"); +-		return -1; +-	} +- + 	eloop_run(); +  + 	return 0; +@@ -540,8 +543,7 @@ int main(int argc, char *argv[]) + 	struct hapd_interfaces interfaces; + 	int ret = 1; + 	size_t i; +-	int c, debug = 0, daemonize = 0; +-	char *pid_file = NULL; ++	int c, debug = 0; + 	const char *log_file = NULL; + 	const char *entropy_file = NULL; +  | 
