diff options
author | Felix Fietkau <nbd@nbd.name> | 2023-08-29 14:32:42 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2023-09-18 16:52:25 +0200 |
commit | 9720b094aef89802327683f25824820581fed0b9 (patch) | |
tree | 1add9555f456586bf676dca47ac674887d6f7cc2 /package/network/services/hostapd/patches/701-reload_config_inline.patch | |
parent | 263583dc1e569fae3f8e99d73f2fd72376421b17 (diff) | |
download | upstream-9720b094aef89802327683f25824820581fed0b9.tar.gz upstream-9720b094aef89802327683f25824820581fed0b9.tar.bz2 upstream-9720b094aef89802327683f25824820581fed0b9.zip |
hostapd: backport from master, including ucode based reload support
This significantly improves config reload behavior and also fixes some
corner cases related to running AP + mesh interfaces at the same time.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/network/services/hostapd/patches/701-reload_config_inline.patch')
-rw-r--r-- | package/network/services/hostapd/patches/701-reload_config_inline.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/701-reload_config_inline.patch b/package/network/services/hostapd/patches/701-reload_config_inline.patch new file mode 100644 index 0000000000..3c62bf670f --- /dev/null +++ b/package/network/services/hostapd/patches/701-reload_config_inline.patch @@ -0,0 +1,33 @@ +--- a/hostapd/config_file.c ++++ b/hostapd/config_file.c +@@ -4816,7 +4816,12 @@ struct hostapd_config * hostapd_config_r + int errors = 0; + size_t i; + +- f = fopen(fname, "r"); ++ if (!strncmp(fname, "data:", 5)) { ++ f = fmemopen((void *)(fname + 5), strlen(fname + 5), "r"); ++ fname = "<inline>"; ++ } else { ++ f = fopen(fname, "r"); ++ } + if (f == NULL) { + wpa_printf(MSG_ERROR, "Could not open configuration file '%s' " + "for reading.", fname); +--- a/wpa_supplicant/config_file.c ++++ b/wpa_supplicant/config_file.c +@@ -326,8 +326,13 @@ struct wpa_config * wpa_config_read(cons + while (cred_tail && cred_tail->next) + cred_tail = cred_tail->next; + ++ if (!strncmp(name, "data:", 5)) { ++ f = fmemopen((void *)(name + 5), strlen(name + 5), "r"); ++ name = "<inline>"; ++ } else { ++ f = fopen(name, "r"); ++ } + wpa_printf(MSG_DEBUG, "Reading configuration file '%s'", name); +- f = fopen(name, "r"); + if (f == NULL) { + wpa_printf(MSG_ERROR, "Failed to open config file '%s', " + "error: %s", name, strerror(errno)); |