P2P: Add wpas_p2p_disconnect()
Add a new API function wpas_p2p_disconnect() to disconnect from or dissolve a group. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
bbeee9b0db
commit
3103f34576
2 changed files with 27 additions and 9 deletions
|
@ -3034,8 +3034,7 @@ int wpas_p2p_group_remove(struct wpa_supplicant *wpa_s, const char *ifname)
|
|||
while (wpa_s) {
|
||||
prev = wpa_s;
|
||||
wpa_s = wpa_s->next;
|
||||
prev->removal_reason = P2P_GROUP_REMOVAL_REQUESTED;
|
||||
wpas_p2p_group_delete(prev);
|
||||
wpas_p2p_disconnect(prev);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -3045,13 +3044,7 @@ int wpas_p2p_group_remove(struct wpa_supplicant *wpa_s, const char *ifname)
|
|||
break;
|
||||
}
|
||||
|
||||
if (wpa_s == NULL)
|
||||
return -1;
|
||||
|
||||
wpa_s->removal_reason = P2P_GROUP_REMOVAL_REQUESTED;
|
||||
wpas_p2p_group_delete(wpa_s);
|
||||
|
||||
return 0;
|
||||
return wpas_p2p_disconnect(wpa_s);
|
||||
}
|
||||
|
||||
|
||||
|
@ -4156,3 +4149,27 @@ int wpas_p2p_unauthorize(struct wpa_supplicant *wpa_s, const char *addr)
|
|||
|
||||
return p2p_unauthorize(p2p, peer);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* wpas_p2p_disconnect - Disconnect from a P2P Group
|
||||
* @wpa_s: Pointer to wpa_supplicant data
|
||||
* Returns: 0 on success, -1 on failure
|
||||
*
|
||||
* This can be used to disconnect from a group in which the local end is a P2P
|
||||
* Client or to end a P2P Group in case the local end is the Group Owner. If a
|
||||
* virtual network interface was created for this group, that interface will be
|
||||
* removed. Otherwise, only the configured P2P group network will be removed
|
||||
* from the interface.
|
||||
*/
|
||||
int wpas_p2p_disconnect(struct wpa_supplicant *wpa_s)
|
||||
{
|
||||
|
||||
if (wpa_s == NULL)
|
||||
return -1;
|
||||
|
||||
wpa_s->removal_reason = P2P_GROUP_REMOVAL_REQUESTED;
|
||||
wpas_p2p_group_delete(wpa_s);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -121,5 +121,6 @@ void wpas_p2p_interface_unavailable(struct wpa_supplicant *wpa_s);
|
|||
void wpas_p2p_update_best_channels(struct wpa_supplicant *wpa_s,
|
||||
int freq_24, int freq_5, int freq_overall);
|
||||
int wpas_p2p_unauthorize(struct wpa_supplicant *wpa_s, const char *addr);
|
||||
int wpas_p2p_disconnect(struct wpa_supplicant *wpa_s);
|
||||
|
||||
#endif /* P2P_SUPPLICANT_H */
|
||||
|
|
Loading…
Reference in a new issue