forked from mirror/openwrt
Manually refreshed: 010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch 110-mbedtls-TLS-crypto-option-initial-port.patch 140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch 301-mesh-noscan.patch 601-ucode_support.patch 780-Implement-APuP-Access-Point-Micro-Peering.patch Dropped upstreamed: 330-nl80211_fix_set_freq.patch 804-hostapd-Fix-clearing-up-settings-for-color-switch.patch Automatically rebased all other patches. Tested-by: Rany Hany <rany_hany@riseup.net> # ramips_mt7621/asus_rt-ax53u, mt7622/xiaomi_redmi-router-ax6s Tested-by: Andre Heider <a.heider@gmail.com> # filogic/openwrt_one, ramips_mt7621/netgear_wac124 Tested-by: Agustin Lorenzo <agustin.lorenzo@thinco.es> # qualcommax/ipq807x (AX3600) Tested-by: Daniel Pawlik <pawlik.dan@gmail.com> # BPi-R4 with mt7996 Signed-off-by: Rany Hany <rany_hany@riseup.net>
41 lines
1.3 KiB
Diff
41 lines
1.3 KiB
Diff
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Fri, 26 May 2023 10:23:59 +0200
|
|
Subject: [PATCH] Add ucode support, use ucode for the main ubus object #2
|
|
|
|
This implements vastly improved dynamic configuration reload support.
|
|
It can handle configuration changes on individual wifi interfaces, as well
|
|
as adding/removing interfaces.
|
|
|
|
--- a/hostapd/config_file.c
|
|
+++ b/hostapd/config_file.c
|
|
@@ -5223,7 +5223,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
|
|
@@ -390,8 +390,13 @@ struct wpa_config * wpa_config_read(cons
|
|
while (identity_tail && identity_tail->next)
|
|
identity_tail = identity_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));
|