diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2018-02-25 14:27:18 +0100 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2018-06-13 14:44:42 +0200 |
commit | ca29761212d679b06ee3e140a1a01054410573d2 (patch) | |
tree | 9bf1bb8e20429ab745c22b17b1def0e79dabc90b | |
parent | e6abc96e133e238831634d925f6fd7c993729f24 (diff) | |
download | NetworkManager-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.c | 26 |
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); |