P2P: Fix persistent group profile on manual disabled=2 change

ssid->p2p_persistent_group was left to its old value when changing a
network profile to/from P2P persistent group type (disabled=2). This
could result in unexpected behavior when using an incomplete persistent
group profile. This was mainly visible through D-Bus network profile
handling where a persistent group would not be unregistered insome
cases.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2015-06-10 23:58:21 +03:00 committed by Jouni Malinen
parent 3a59cda1d0
commit 661888be39

View file

@ -790,10 +790,12 @@ void wpas_notify_network_type_changed(struct wpa_supplicant *wpa_s,
ssid->disabled = 0; ssid->disabled = 0;
wpas_dbus_unregister_network(wpa_s, ssid->id); wpas_dbus_unregister_network(wpa_s, ssid->id);
ssid->disabled = 2; ssid->disabled = 2;
ssid->p2p_persistent_group = 1;
wpas_dbus_register_persistent_group(wpa_s, ssid); wpas_dbus_register_persistent_group(wpa_s, ssid);
} else { } else {
/* Changed from persistent group to normal network profile */ /* Changed from persistent group to normal network profile */
wpas_dbus_unregister_persistent_group(wpa_s, ssid->id); wpas_dbus_unregister_persistent_group(wpa_s, ssid->id);
ssid->p2p_persistent_group = 0;
wpas_dbus_register_network(wpa_s, ssid); wpas_dbus_register_network(wpa_s, ssid);
} }
#endif /* CONFIG_P2P */ #endif /* CONFIG_P2P */