mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 02:29:01 +00:00
8af79550e6
This also syncs the configuration files with the default configuration files, but no extra options are activated or deactivated. The mesh patches were partially merged into hostapd 2.8, the remaining patches were extracted from patchwork and are now applied by OpenWrt. The patches still have open questions which are not fixed by the author. They were taken from this page: https://patchwork.ozlabs.org/project/hostap/list/?series=62725&state=* The changes in 007-mesh-apply-channel-attributes-before-running-Mesh.patch where first applied to hostapd, but later reverted in hostapd commit 3e949655ccc5 because they caused memory leaks. The size of the ipkgs increase a bit (between 1.3% and 2.3%): old 2018-12-02 (2.7): 283337 wpad-basic_2018-12-02-c2c6c01b-11_mipsel_24kc.ipk 252857 wpad-mini_2018-12-02-c2c6c01b-11_mipsel_24kc.ipk 417473 wpad-openssl_2018-12-02-c2c6c01b-11_mipsel_24kc.ipk 415105 wpad-wolfssl_2018-12-02-c2c6c01b-11_mipsel_24kc.ipk new 2019-04-21 (2.8): 288264 wpad-basic_2019-04-21-63962824-1_mipsel_24kc.ipk 256188 wpad-mini_2019-04-21-63962824-1_mipsel_24kc.ipk 427475 wpad-openssl_2019-04-21-63962824-1_mipsel_24kc.ipk 423071 wpad-wolfssl_2019-04-21-63962824-1_mipsel_24kc.ipk Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
74 lines
1.6 KiB
Diff
74 lines
1.6 KiB
Diff
--- a/hostapd/main.c
|
|
+++ b/hostapd/main.c
|
|
@@ -39,6 +39,8 @@ struct hapd_global {
|
|
};
|
|
|
|
static struct hapd_global global;
|
|
+static int daemonize = 0;
|
|
+static char *pid_file = NULL;
|
|
|
|
|
|
#ifndef CONFIG_NO_HOSTAPD_LOGGER
|
|
@@ -149,6 +151,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
|
|
@@ -167,6 +177,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;
|
|
@@ -407,8 +419,6 @@ static void hostapd_global_deinit(const
|
|
#endif /* CONFIG_NATIVE_WINDOWS */
|
|
|
|
eap_server_unregister_methods();
|
|
-
|
|
- os_daemonize_terminate(pid_file);
|
|
}
|
|
|
|
|
|
@@ -434,18 +444,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;
|
|
@@ -647,8 +645,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;
|