wpa_cli: Implement completion routine for get_capability

Add command completion routine for get_capability command.

Signed-off-by: Mikael Kanstrup <mikael.kanstrup@sonymobile.com>
This commit is contained in:
Mikael Kanstrup 2016-07-07 14:04:30 +02:00 committed by Jouni Malinen
parent fed802c2e8
commit 003fe581a3

View file

@ -1824,6 +1824,48 @@ static int wpa_cli_cmd_get_capability(struct wpa_ctrl *ctrl, int argc,
} }
static char ** wpa_cli_complete_get_capability(const char *str, int pos)
{
int arg = get_cmd_arg_num(str, pos);
const char *fields[] = {
"eap", "pairwise", "group", "group_mgmt", "key_mgmt",
"proto", "auth_alg", "modes", "channels", "freq",
#ifdef CONFIG_TDLS
"tdls",
#endif /* CONFIG_TDLS */
#ifdef CONFIG_ERP
"erp",
#endif /* CONFIG_ERP */
#ifdef CONFIG_FIPS
"fips",
#endif /* CONFIG_FIPS */
#ifdef CONFIG_ACS
"acs",
#endif /* CONFIG_ACS */
};
int i, num_fields = ARRAY_SIZE(fields);
char **res = NULL;
if (arg == 1) {
res = os_calloc(num_fields + 1, sizeof(char *));
if (res == NULL)
return NULL;
for (i = 0; i < num_fields; i++) {
res[i] = os_strdup(fields[i]);
if (res[i] == NULL)
return res;
}
}
if (arg == 2) {
res = os_calloc(1 + 1, sizeof(char *));
if (res == NULL)
return NULL;
res[0] = os_strdup("strict");
}
return res;
}
static int wpa_cli_list_interfaces(struct wpa_ctrl *ctrl) static int wpa_cli_list_interfaces(struct wpa_ctrl *ctrl)
{ {
printf("Available interfaces:\n"); printf("Available interfaces:\n");
@ -3100,8 +3142,8 @@ static const struct wpa_cli_cmd wpa_cli_commands[] = {
{ "bss", wpa_cli_cmd_bss, wpa_cli_complete_bss, { "bss", wpa_cli_cmd_bss, wpa_cli_complete_bss,
cli_cmd_flag_none, cli_cmd_flag_none,
"<<idx> | <bssid>> = get detailed scan result info" }, "<<idx> | <bssid>> = get detailed scan result info" },
{ "get_capability", wpa_cli_cmd_get_capability, NULL, { "get_capability", wpa_cli_cmd_get_capability,
cli_cmd_flag_none, wpa_cli_complete_get_capability, cli_cmd_flag_none,
"<eap/pairwise/group/key_mgmt/proto/auth_alg/channels/freq/modes> " "<eap/pairwise/group/key_mgmt/proto/auth_alg/channels/freq/modes> "
"= get capabilities" }, "= get capabilities" },
{ "reconfigure", wpa_cli_cmd_reconfigure, NULL, { "reconfigure", wpa_cli_cmd_reconfigure, NULL,