aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2010-02-24 10:43:49 -0800
committerDmitry Shmidt <dimitrysh@google.com>2010-02-24 10:43:49 -0800
commit3936ce8fac598431199814539e806c4eacabdfb7 (patch)
tree2eefb4c82a676ea21c62185bed6ff67c967282cf
parent80e9d69a5a1da96e57aed66ced3899484b129cde (diff)
downloadwpa_supplicant-3936ce8fac598431199814539e806c4eacabdfb7.tar.gz
Update priority list after changing priority
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
-rw-r--r--config.c2
-rw-r--r--config.h2
-rw-r--r--ctrl_iface.c4
3 files changed, 6 insertions, 2 deletions
diff --git a/config.c b/config.c
index a1112b7..7e75aea 100644
--- a/config.c
+++ b/config.c
@@ -1295,7 +1295,7 @@ int wpa_config_add_prio_network(struct wpa_config *config,
* configuration when a network is being added or removed. This is also called
* if a priority for a network is changed.
*/
-static int wpa_config_update_prio_list(struct wpa_config *config)
+int wpa_config_update_prio_list(struct wpa_config *config)
{
struct wpa_ssid *ssid;
int ret = 0;
diff --git a/config.h b/config.h
index 3852f92..8db434a 100644
--- a/config.h
+++ b/config.h
@@ -288,7 +288,7 @@ char * wpa_config_get_no_key(struct wpa_ssid *ssid, const char *var);
void wpa_config_update_psk(struct wpa_ssid *ssid);
int wpa_config_add_prio_network(struct wpa_config *config,
struct wpa_ssid *ssid);
-
+int wpa_config_update_prio_list(struct wpa_config *config);
const struct wpa_config_blob * wpa_config_get_blob(struct wpa_config *config,
const char *name);
void wpa_config_set_blob(struct wpa_config *config,
diff --git a/ctrl_iface.c b/ctrl_iface.c
index ef93533..c9d4f07 100644
--- a/ctrl_iface.c
+++ b/ctrl_iface.c
@@ -796,6 +796,10 @@ static int wpa_supplicant_ctrl_iface_set_network(
wpa_printf(MSG_DEBUG, "CTRL_IFACE: Failed to set network "
"variable '%s'", name);
return -1;
+ } else {
+ if (os_strcmp(name, "priority") == 0) {
+ wpa_config_update_prio_list(wpa_s->conf);
+ }
}
if (wpa_s->current_ssid == ssid) {