diff options
Diffstat (limited to 'package/hostapd/patches/452-ctrl_iface_reload.patch')
-rw-r--r-- | package/hostapd/patches/452-ctrl_iface_reload.patch | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/package/hostapd/patches/452-ctrl_iface_reload.patch b/package/hostapd/patches/452-ctrl_iface_reload.patch index c0617eb75f..81dcfedde5 100644 --- a/package/hostapd/patches/452-ctrl_iface_reload.patch +++ b/package/hostapd/patches/452-ctrl_iface_reload.patch @@ -16,7 +16,7 @@ static void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level, const char *buf, size_t len); -@@ -152,6 +154,66 @@ static int hostapd_ctrl_iface_new_sta(st +@@ -152,6 +154,68 @@ static int hostapd_ctrl_iface_new_sta(st return 0; } @@ -69,28 +69,30 @@ + return conf; +} + -+static int hostapd_ctrl_iface_reload(struct hostapd_data *hapd, char *txt) ++static int hostapd_ctrl_iface_update(struct hostapd_data *hapd, char *txt) +{ ++ struct hostapd_config * (*config_read_cb)(const char *config_fname); + struct hostapd_iface *iface = hapd->iface; + -+ iface->config_read_cb = hostapd_ctrl_iface_config_read; ++ config_read_cb = iface->interfaces->config_read_cb; ++ iface->interfaces->config_read_cb = hostapd_ctrl_iface_config_read; + reload_opts = txt; + + hostapd_reload_config(iface); + -+ iface->config_read_cb = hostapd_config_read; ++ iface->interfaces->config_read_cb = config_read_cb; +} #ifdef CONFIG_IEEE80211W #ifdef NEED_AP_MLME -@@ -710,6 +772,10 @@ static void hostapd_ctrl_iface_receive(i +@@ -864,6 +928,10 @@ static void hostapd_ctrl_iface_receive(i reply_len += res; } #endif /* CONFIG_NO_RADIUS */ + } else if (os_strcmp(buf, "DOWN") == 0) { + hostapd_ctrl_iface_set_down(hapd); -+ } else if (os_strncmp(buf, "RELOAD ", 7) == 0) { -+ hostapd_ctrl_iface_reload(hapd, buf + 7); ++ } else if (os_strncmp(buf, "UPDATE ", 7) == 0) { ++ hostapd_ctrl_iface_update(hapd, buf + 7); } else if (os_strcmp(buf, "STA-FIRST") == 0) { reply_len = hostapd_ctrl_iface_sta_first(hapd, reply, reply_size); |