summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2018-02-25 14:27:18 +0100
committerLubomir Rintel <lkundrak@v3.sk>2018-06-13 14:44:42 +0200
commitca29761212d679b06ee3e140a1a01054410573d2 (patch)
tree9bf1bb8e20429ab745c22b17b1def0e79dabc90b
parente6abc96e133e238831634d925f6fd7c993729f24 (diff)
downloadNetworkManager-ca29761212d679b06ee3e140a1a01054410573d2.tar.gz
cli/devices: parse "nmcli d wifi list" arguments with next_arg()
For no reason at all.
-rw-r--r--clients/cli/devices.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/clients/cli/devices.c b/clients/cli/devices.c
index 81f11415d4..94e92ea739 100644
--- a/clients/cli/devices.c
+++ b/clients/cli/devices.c
@@ -2653,15 +2653,13 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
const char *base_hdr = _("Wi-Fi scan list");
NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
gs_free char *header_name = NULL;
+ int option;
devices = nmc_get_devices_sorted (nmc->client);
- next_arg (nmc, &argc, &argv, NULL);
- while (argc > 0) {
- if (argc == 1 && nmc->complete)
- nmc_complete_strings (*argv, "ifname", "bssid", NULL);
-
- if (strcmp (*argv, "ifname") == 0) {
+ while ((option = next_arg (nmc, &argc, &argv, "ifname", "hwaddr", "bssid", NULL)) > 0) {
+ switch (option) {
+ case 1: /* ifname */
argc--;
argv++;
if (!argc) {
@@ -2671,8 +2669,9 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
ifname = *argv;
if (argc == 1 && nmc->complete)
complete_device (devices, ifname, TRUE);
- } else if (strcmp (*argv, "bssid") == 0 || strcmp (*argv, "hwaddr") == 0) {
- /* hwaddr is deprecated and will be removed later */
+ break;
+ case 2: /* hwaddr is deprecated and will be removed later */
+ case 3: /* bssid */
argc--;
argv++;
if (!argc) {
@@ -2682,11 +2681,11 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
bssid_user = *argv;
if (argc == 1 && nmc->complete)
complete_aps (devices, NULL, bssid_user, NULL);
- } else if (!nmc->complete) {
- g_printerr (_("Unknown parameter: %s\n"), *argv);
+ break;
+ default:
+ g_assert_not_reached();
+ break;
}
-
- next_arg (nmc, &argc, &argv, NULL);
}
if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0)
@@ -2707,6 +2706,9 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
if (nmc->complete)
return nmc->return_value;
+ if (argc)
+ g_printerr (_("Unknown parameter: %s\n"), *argv);
+
if (ifname) {
device = find_wifi_device_by_iface (devices, ifname, NULL);