Browse Source

hostapd: Allow config parameters to be set through ctrl_iface

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Shan Palanisamy 13 years ago
parent
commit
31b79e1197
3 changed files with 30 additions and 1 deletions
  1. 25 0
      hostapd/config_file.c
  2. 3 0
      hostapd/config_file.h
  3. 2 1
      hostapd/ctrl_iface.c

+ 25 - 0
hostapd/config_file.c

@@ -2276,3 +2276,28 @@ struct hostapd_config * hostapd_config_read(const char *fname)
 
 	return conf;
 }
+
+
+int hostapd_set_iface(struct hostapd_config *conf,
+		      struct hostapd_bss_config *bss, char *field, char *value)
+{
+	int errors = 0;
+	size_t i;
+
+	errors = hostapd_config_fill(conf, bss, field, value, 0);
+	if (errors) {
+		wpa_printf(MSG_INFO, "Failed to set configuration field '%s' "
+			   "to value '%s'", field, value);
+		return -1;
+	}
+
+	for (i = 0; i < conf->num_bss; i++)
+		hostapd_set_security_params(&conf->bss[i]);
+
+	if (hostapd_config_check(conf)) {
+		wpa_printf(MSG_ERROR, "Configuration check failed");
+		errors++;
+	}
+
+	return 0;
+}

+ 3 - 0
hostapd/config_file.h

@@ -10,5 +10,8 @@
 #define CONFIG_FILE_H
 
 struct hostapd_config * hostapd_config_read(const char *fname);
+int hostapd_set_iface(struct hostapd_config *conf,
+		      struct hostapd_bss_config *bss, char *field,
+		      char *value);
 
 #endif /* CONFIG_FILE_H */

+ 2 - 1
hostapd/ctrl_iface.c

@@ -31,6 +31,7 @@
 #include "ap/ap_drv_ops.h"
 #include "wps/wps_defs.h"
 #include "wps/wps.h"
+#include "config_file.h"
 #include "ctrl_iface.h"
 
 
@@ -774,7 +775,7 @@ static int hostapd_ctrl_iface_set(struct hostapd_data *hapd, char *cmd)
 			   wps_testing_dummy_cred);
 #endif /* CONFIG_WPS_TESTING */
 	} else {
-		ret = -1;
+		ret = hostapd_set_iface(hapd->iconf, hapd->conf, cmd, value);
 	}
 
 	return ret;