12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- --- a/hostapd/main.c
- +++ b/hostapd/main.c
- @@ -37,6 +37,8 @@ struct hapd_global {
- };
-
- static struct hapd_global global;
- +static int daemonize = 0;
- +static char *pid_file = NULL;
-
-
- #ifndef CONFIG_NO_HOSTAPD_LOGGER
- @@ -147,6 +149,14 @@ static void hostapd_logger_cb(void *ctx,
- }
- #endif /* CONFIG_NO_HOSTAPD_LOGGER */
-
- +static void hostapd_setup_complete_cb(void *ctx)
- +{
- + if (daemonize && os_daemonize(pid_file)) {
- + perror("daemon");
- + return;
- + }
- + daemonize = 0;
- +}
-
- /**
- * hostapd_driver_init - Preparate driver interface
- @@ -165,6 +175,8 @@ static int hostapd_driver_init(struct ho
- return -1;
- }
-
- + hapd->setup_complete_cb = hostapd_setup_complete_cb;
- +
- /* Initialize the driver interface */
- if (!(b[0] | b[1] | b[2] | b[3] | b[4] | b[5]))
- b = NULL;
- @@ -405,8 +417,6 @@ static void hostapd_global_deinit(const
- #endif /* CONFIG_NATIVE_WINDOWS */
-
- eap_server_unregister_methods();
- -
- - os_daemonize_terminate(pid_file);
- }
-
-
- @@ -432,18 +442,6 @@ static int hostapd_global_run(struct hap
- }
- #endif /* EAP_SERVER_TNC */
-
- - if (daemonize) {
- - if (os_daemonize(pid_file)) {
- - wpa_printf(MSG_ERROR, "daemon: %s", strerror(errno));
- - return -1;
- - }
- - if (eloop_sock_requeue()) {
- - wpa_printf(MSG_ERROR, "eloop_sock_requeue: %s",
- - strerror(errno));
- - return -1;
- - }
- - }
- -
- eloop_run();
-
- return 0;
- @@ -645,8 +643,7 @@ int main(int argc, char *argv[])
- struct hapd_interfaces interfaces;
- int ret = 1;
- size_t i, j;
- - int c, debug = 0, daemonize = 0;
- - char *pid_file = NULL;
- + int c, debug = 0;
- const char *log_file = NULL;
- const char *entropy_file = NULL;
- char **bss_config = NULL, **tmp_bss;
|