dbus_new: Add DBus TDLS methods
Add DBus methods for TDLS operations similar to those available for the control interface. This includes Discover, Setup, and Teardown commands. While here, add a method to query the TDLS link status and add a DBus method for it. Tested with CONFIG_TDLS enabled, on a TDLS-enabled host and peer capable of TDLS: dbus-send --system --dest=fi.w1.wpa_supplicant1 --print-reply \ /fi/w1/wpa_supplicant1/Interfaces/0 \ fi.w1.wpa_supplicant1.Interface.TDLSStatus string:<peer-mac-address> yields: string "peer does not exist" dbus-send --system --dest=fi.w1.wpa_supplicant1 --print-reply \ /fi/w1/wpa_supplicant1/Interfaces/0 \ fi.w1.wpa_supplicant1.Interface.TDLSDiscover string:<peer-mac-address> yields no error dbus-send --system --dest=fi.w1.wpa_supplicant1 --print-reply \ /fi/w1/wpa_supplicant1/Interfaces/0 \ fi.w1.wpa_supplicant1.Interface.TDLSSetup string:<peer-mac-address> yields no error dbus-send --system --dest=fi.w1.wpa_supplicant1 --print-reply \ /fi/w1/wpa_supplicant1/Interfaces/0 \ fi.w1.wpa_supplicant1.Interface.TDLSStatus string:<peer-mac-address> yields: string "connected" after TDLS completes dbus-send --system --dest=fi.w1.wpa_supplicant1 --print-reply \ /fi/w1/wpa_supplicant1/Interfaces/0 \ fi.w1.wpa_supplicant1.Interface.TDLSTeardown string:<peer-mac-address> yields no error dbus-send --system --dest=fi.w1.wpa_supplicant1 --print-reply \ /fi/w1/wpa_supplicant1/Interfaces/0 \ fi.w1.wpa_supplicant1.Interface.TDLSStatus string:<peer-mac-address> yields: string "peer not connected" Signed-hostap: Paul Stewart <pstew@chromium.org>
This commit is contained in:
parent
cc4952ad63
commit
cea97a04f9
5 changed files with 227 additions and 0 deletions
|
@ -797,6 +797,28 @@ void wpa_tdls_disable_link(struct wpa_sm *sm, const u8 *addr)
|
|||
}
|
||||
|
||||
|
||||
const char * wpa_tdls_get_link_status(struct wpa_sm *sm, const u8 *addr)
|
||||
{
|
||||
struct wpa_tdls_peer *peer;
|
||||
|
||||
if (sm->tdls_disabled || !sm->tdls_supported)
|
||||
return "disabled";
|
||||
|
||||
for (peer = sm->tdls; peer; peer = peer->next) {
|
||||
if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
if (peer == NULL)
|
||||
return "peer does not exist";
|
||||
|
||||
if (!peer->tpk_success)
|
||||
return "peer not connected";
|
||||
|
||||
return "connected";
|
||||
}
|
||||
|
||||
|
||||
static int wpa_tdls_recv_teardown(struct wpa_sm *sm, const u8 *src_addr,
|
||||
const u8 *buf, size_t len)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue