P2PS: Notify D-Bus about removal of a stale/empty persistent group
During P2PS PD Request processing wpa_supplicant removes stale and empty persistent groups, but it did not notify D-Bus to unregister object. Fix this by adding the missing notifications. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
69dc9cabcc
commit
19c3a9a88d
1 changed files with 18 additions and 0 deletions
|
@ -4045,6 +4045,11 @@ static void wpas_p2ps_prov_complete(void *ctx, u8 status, const u8 *dev,
|
||||||
|
|
||||||
if (persistent_go && !persistent_go->num_p2p_clients) {
|
if (persistent_go && !persistent_go->num_p2p_clients) {
|
||||||
/* remove empty persistent GO */
|
/* remove empty persistent GO */
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG,
|
||||||
|
"P2P: Remove empty persistent group id=%d",
|
||||||
|
persistent_go->id);
|
||||||
|
wpas_notify_persistent_group_removed(wpa_s,
|
||||||
|
persistent_go);
|
||||||
wpa_config_remove_network(wpa_s->conf,
|
wpa_config_remove_network(wpa_s->conf,
|
||||||
persistent_go->id);
|
persistent_go->id);
|
||||||
}
|
}
|
||||||
|
@ -4085,6 +4090,10 @@ static void wpas_p2ps_prov_complete(void *ctx, u8 status, const u8 *dev,
|
||||||
/* Remove stale persistent group */
|
/* Remove stale persistent group */
|
||||||
if (stale->mode != WPAS_MODE_P2P_GO ||
|
if (stale->mode != WPAS_MODE_P2P_GO ||
|
||||||
stale->num_p2p_clients <= 1) {
|
stale->num_p2p_clients <= 1) {
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG,
|
||||||
|
"P2P: Remove stale persistent group id=%d",
|
||||||
|
stale->id);
|
||||||
|
wpas_notify_persistent_group_removed(wpa_s, stale);
|
||||||
wpa_config_remove_network(wpa_s->conf, stale->id);
|
wpa_config_remove_network(wpa_s->conf, stale->id);
|
||||||
} else {
|
} else {
|
||||||
size_t i;
|
size_t i;
|
||||||
|
@ -4117,6 +4126,11 @@ static void wpas_p2ps_prov_complete(void *ctx, u8 status, const u8 *dev,
|
||||||
if (persistent_go && s != persistent_go &&
|
if (persistent_go && s != persistent_go &&
|
||||||
!persistent_go->num_p2p_clients) {
|
!persistent_go->num_p2p_clients) {
|
||||||
/* remove empty persistent GO */
|
/* remove empty persistent GO */
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG,
|
||||||
|
"P2P: Remove empty persistent group id=%d",
|
||||||
|
persistent_go->id);
|
||||||
|
wpas_notify_persistent_group_removed(wpa_s,
|
||||||
|
persistent_go);
|
||||||
wpa_config_remove_network(wpa_s->conf,
|
wpa_config_remove_network(wpa_s->conf,
|
||||||
persistent_go->id);
|
persistent_go->id);
|
||||||
/* Save config */
|
/* Save config */
|
||||||
|
@ -4224,6 +4238,10 @@ static void wpas_p2ps_prov_complete(void *ctx, u8 status, const u8 *dev,
|
||||||
|
|
||||||
if (persistent_go && !persistent_go->num_p2p_clients) {
|
if (persistent_go && !persistent_go->num_p2p_clients) {
|
||||||
/* remove empty persistent GO */
|
/* remove empty persistent GO */
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG,
|
||||||
|
"P2P: Remove empty persistent group id=%d",
|
||||||
|
persistent_go->id);
|
||||||
|
wpas_notify_persistent_group_removed(wpa_s, persistent_go);
|
||||||
wpa_config_remove_network(wpa_s->conf, persistent_go->id);
|
wpa_config_remove_network(wpa_s->conf, persistent_go->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue