From 6e9375e4e1a0c7f7d27b800ba8c847783d7b2fab Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Thu, 13 Mar 2014 15:12:38 -0700 Subject: [PATCH] TDLS: Add get_capability tdls command Command returns info in format: UNSUPPORTED/INTERNAL/EXTERNAL Signed-off-by: Dmitry Shmidt --- wpa_supplicant/ctrl_iface.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index 98c4b6554..65b2f7db6 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -538,6 +538,22 @@ static int wpa_supplicant_ctrl_iface_tdls_teardown( return ret; } + +static int ctrl_iface_get_capability_tdls( + struct wpa_supplicant *wpa_s, char *buf, size_t buflen) +{ + int ret; + + ret = os_snprintf(buf, buflen, "%s\n", + wpa_s->drv_flags & WPA_DRIVER_FLAGS_TDLS_SUPPORT ? + (wpa_s->drv_flags & + WPA_DRIVER_FLAGS_TDLS_EXTERNAL_SETUP ? + "EXTERNAL" : "INTERNAL") : "UNSUPPORTED"); + if (ret < 0 || (size_t) ret > buflen) + return -1; + return ret; +} + #endif /* CONFIG_TDLS */ @@ -3180,6 +3196,11 @@ static int wpa_supplicant_ctrl_iface_get_capability( if (os_strcmp(field, "freq") == 0) return ctrl_iface_get_capability_freq(wpa_s, buf, buflen); +#ifdef CONFIG_TDLS + if (os_strcmp(field, "tdls") == 0) + return ctrl_iface_get_capability_tdls(wpa_s, buf, buflen); +#endif /* CONFIG_TDLS */ + wpa_printf(MSG_DEBUG, "CTRL_IFACE: Unknown GET_CAPABILITY field '%s'", field);