Add 'signal_poll' command interface

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
This commit is contained in:
Dmitry Shmidt 2011-04-15 18:52:01 +03:00 committed by Jouni Malinen
parent 746bba1a5e
commit 60b24b0de4
2 changed files with 33 additions and 0 deletions

View File

@ -2870,6 +2870,26 @@ static int wpa_supplicant_ctrl_iface_sta_autoconnect(
} }
static int wpa_supplicant_signal_poll(struct wpa_supplicant *wpa_s, char *buf,
size_t buflen)
{
struct wpa_signal_info si;
int ret;
ret = wpa_drv_signal_poll(wpa_s, &si);
if (ret)
return -1;
ret = os_snprintf(buf, buflen, "RSSI=%d\nLINKSPEED=%d\n"
"NOISE=%d\nFREQUENCY=%u\n",
si.current_signal, si.current_txrate / 1000,
si.current_noise, si.frequency);
if (ret < 0 || (unsigned int) ret > buflen)
return -1;
return ret;
}
char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s, char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
char *buf, size_t *resp_len) char *buf, size_t *resp_len)
{ {
@ -3262,6 +3282,9 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
if (wpa_supplicant_ctrl_iface_tdls_teardown(wpa_s, buf + 14)) if (wpa_supplicant_ctrl_iface_tdls_teardown(wpa_s, buf + 14))
reply_len = -1; reply_len = -1;
#endif /* CONFIG_TDLS */ #endif /* CONFIG_TDLS */
} else if (os_strncmp(buf, "SIGNAL_POLL", 11) == 0) {
reply_len = wpa_supplicant_signal_poll(wpa_s, reply,
reply_size);
} else { } else {
os_memcpy(reply, "UNKNOWN COMMAND\n", 16); os_memcpy(reply, "UNKNOWN COMMAND\n", 16);
reply_len = 16; reply_len = 16;

View File

@ -2293,6 +2293,13 @@ static int wpa_cli_cmd_tdls_teardown(struct wpa_ctrl *ctrl, int argc,
} }
static int wpa_cli_cmd_signal_poll(struct wpa_ctrl *ctrl, int argc,
char *argv[])
{
return wpa_ctrl_command(ctrl, "SIGNAL_POLL");
}
enum wpa_cli_cmd_flags { enum wpa_cli_cmd_flags {
cli_cmd_flag_none = 0x00, cli_cmd_flag_none = 0x00,
cli_cmd_flag_sensitive = 0x01 cli_cmd_flag_sensitive = 0x01
@ -2608,6 +2615,9 @@ static struct wpa_cli_cmd wpa_cli_commands[] = {
{ "tdls_teardown", wpa_cli_cmd_tdls_teardown, { "tdls_teardown", wpa_cli_cmd_tdls_teardown,
cli_cmd_flag_none, cli_cmd_flag_none,
"<addr> = tear down TDLS with <addr>" }, "<addr> = tear down TDLS with <addr>" },
{ "signal_poll", wpa_cli_cmd_signal_poll,
cli_cmd_flag_none,
"= get signal parameters" },
{ NULL, NULL, cli_cmd_flag_none, NULL } { NULL, NULL, cli_cmd_flag_none, NULL }
}; };