Add 'signal_poll' command interface
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
This commit is contained in:
parent
746bba1a5e
commit
60b24b0de4
2 changed files with 33 additions and 0 deletions
|
@ -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;
|
||||||
|
|
|
@ -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 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue