From patchwork Sat Mar 14 23:37:07 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikael Kanstrup X-Patchwork-Id: 450233 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from maxx.maxx.shmoo.com (maxx.shmoo.com [205.134.188.171]) by ozlabs.org (Postfix) with ESMTP id 431B71400DE for ; Sun, 15 Mar 2015 10:38:59 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="verification failed; unprotected key" header.d=gmail.com header.i=@gmail.com header.b=oX6ZAz7u; dkim-adsp=none (unprotected policy); dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 316D29D23F; Sat, 14 Mar 2015 19:38:57 -0400 (EDT) X-Virus-Scanned: amavisd-new at maxx.shmoo.com Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id buTGG04AX+pX; Sat, 14 Mar 2015 19:38:56 -0400 (EDT) Received: from maxx.shmoo.com (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 1ADED17C00D; Sat, 14 Mar 2015 19:38:51 -0400 (EDT) X-Original-To: mailman-post+hostap@maxx.shmoo.com Delivered-To: mailman-post+hostap@maxx.shmoo.com Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 7F04E17C00D for ; Sat, 14 Mar 2015 19:38:49 -0400 (EDT) X-Virus-Scanned: amavisd-new at maxx.shmoo.com Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YMoVVYIvsApy for ; Sat, 14 Mar 2015 19:38:43 -0400 (EDT) Received: from mail-la0-f45.google.com (mail-la0-f45.google.com [209.85.215.45]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (not verified)) by maxx.maxx.shmoo.com (Postfix) with ESMTPS id 383DC9D248 for ; Sat, 14 Mar 2015 19:38:40 -0400 (EDT) Received: by lagg8 with SMTP id g8so14615560lag.1 for ; Sat, 14 Mar 2015 16:38:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=i+1UBjkGW//wvl/vyVKpZbk7FztEeEsiuUDj63TQNS0=; b=oX6ZAz7uyTVAygSFKIRzddQ9wxxK8XfDhF1kcaTYDtjFTBiwKTgCRfFZTQHkfFWzgg QtxnqmNuQyLtMmFY4fYv6AvLwaaLKCpNQ1aW0oWDBPxTwaipGKObR1pR8GEVsyyyfSt7 r6BOReOeAKdPPHByMXRLkB07Wr5g+6bFsGtjEwGLqK8cha7DCIENLi91e79BPqCc5lPO F82e5OXsvyqjvyYbWqc+ZqiOPCwldpVz59gZfmZ6ma4Cgr2jRtVaVp6AtgOY0oyGnhid dE9ZHhZQ3A34JuY9nd1M6A1nrCvg4c3UG05CxHvbR5dhjvY6VsceqI0NWPSkbxXBNFMN OEug== X-Received: by 10.112.63.165 with SMTP id h5mr48168255lbs.16.1426376318079; Sat, 14 Mar 2015 16:38:38 -0700 (PDT) Received: from seldlx20831.kanstrup.mine.nu (h87-96-232-175.dynamic.se.alltele.net. [87.96.232.175]) by mx.google.com with ESMTPSA id p11sm1244946lbs.13.2015.03.14.16.38.36 (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 14 Mar 2015 16:38:37 -0700 (PDT) From: Mikael Kanstrup To: hostap@lists.shmoo.com Subject: [PATCH 2/3] wpa_cli: Add completion routine for "get" command Date: Sun, 15 Mar 2015 00:37:07 +0100 Message-Id: <1426376228-10573-2-git-send-email-mikael.kanstrup@gmail.com> X-Mailer: git-send-email 1.8.2.2 In-Reply-To: <1426376228-10573-1-git-send-email-mikael.kanstrup@gmail.com> References: <1426376228-10573-1-git-send-email-mikael.kanstrup@gmail.com> Cc: Mikael Kanstrup X-BeenThere: hostap@lists.shmoo.com X-Mailman-Version: 2.1.11 Precedence: list List-Id: HostAP Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: hostap-bounces@lists.shmoo.com Errors-To: hostap-bounces@lists.shmoo.com From: Mikael Kanstrup Add tab completion function that includes all available "get" parameters. Signed-off-by: Mikael Kanstrup --- wpa_supplicant/wpa_cli.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/wpa_supplicant/wpa_cli.c b/wpa_supplicant/wpa_cli.c index 5a0af0d..32fe7c2 100644 --- a/wpa_supplicant/wpa_cli.c +++ b/wpa_supplicant/wpa_cli.c @@ -669,6 +669,72 @@ static int wpa_cli_cmd_get(struct wpa_ctrl *ctrl, int argc, char *argv[]) return wpa_cli_cmd(ctrl, "GET", 1, argc, argv); } +static char ** wpa_cli_complete_get(const char *str, int pos) +{ + int arg = get_cmd_arg_num(str, pos); + const char *fields[] = { +#ifdef CONFIG_CTRL_IFACE + "ctrl_interface", "ctrl_interface_group", +#endif /* CONFIG_CTRL_IFACE */ + "eapol_version", "ap_scan", +#ifdef CONFIG_MESH + "user_mpm", "max_peer_links", "mesh_max_inactivity", +#endif /* CONFIG_MESH */ + "disable_scan_offload", "fast_reauth", "opensc_engine_path", + "pkcs11_engine_path", "pkcs11_module_path", "openssl_ciphers", + "pcsc_reader", "pcsc_pin", "external_sim", "driver_param", + "dot11RSNAConfigPMKLifetime", + "dot11RSNAConfigPMKReauthThreshold", + "dot11RSNAConfigSATimeout", +#ifndef CONFIG_NO_CONFIG_WRITE + "update_config", +#endif /* CONFIG_NO_CONFIG_WRITE */ +#ifdef CONFIG_WPS + "device_name", "manufacturer", "model_name", "model_number", + "serial_number", "config_methods", "wps_cred_processing", +#endif /* CONFIG_WPS */ +#ifdef CONFIG_P2P + "p2p_listen_reg_class", "p2p_listen_channel", + "p2p_oper_reg_class", "p2p_oper_channel", "p2p_go_intent", + "p2p_ssid_postfix", "persistent_reconnect", "p2p_intra_bss", + "p2p_group_idle", "p2p_passphrase_len", "p2p_add_cli_chan", + "p2p_optimize_listen_chan", "p2p_go_ht40", "p2p_go_vht", + "p2p_disabled", "p2p_go_ctwindow", "p2p_no_group_iface", + "p2p_ignore_shared_freq", "ip_addr_go", "ip_addr_mask", + "ip_addr_start", "ip_addr_end", +#endif /* CONFIG_P2P */ + "bss_max_count", "bss_expiration_age", + "bss_expiration_scan_count", "filter_ssids", "filter_rssi", + "max_num_sta", "disassoc_low_ack", +#ifdef CONFIG_HS20 + "hs20", +#endif /* CONFIG_HS20 */ + "interworking", "access_network_type", "pbc_in_m1", "autoscan", + "wps_nfc_dev_pw_id", "ext_password_backend", + "p2p_go_max_inactivity", "auto_interworking", "okc", "pmf", + "dtim_period", "beacon_int", "ignore_old_scan_res", + "scan_cur_freq", "sched_scan_interval", + "tdls_external_control", "osu_dir", "wowlan_triggers", + "p2p_search_delay", "mac_addr", "rand_addr_lifetime", + "preassoc_mac_addr", "key_mgmt_offload", "passive_scan", + "reassoc_same_bss_optim" + }; + int i, num_fields = ARRAY_SIZE(fields); + + if (arg == 1) { + char **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; + } + return res; + } + + return NULL; +} static int wpa_cli_cmd_logoff(struct wpa_ctrl *ctrl, int argc, char *argv[]) { @@ -2624,7 +2690,7 @@ static struct wpa_cli_cmd wpa_cli_commands[] = { { "dump", wpa_cli_cmd_dump, NULL, cli_cmd_flag_none, "= dump config variables" }, - { "get", wpa_cli_cmd_get, NULL, + { "get", wpa_cli_cmd_get, wpa_cli_complete_get, cli_cmd_flag_none, " = get information" }, { "logon", wpa_cli_cmd_logon, NULL,