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;
}
+ 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);