summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Heider <a.heider@gmail.com>2022-11-21 18:56:38 +0100
committerJo-Philipp Wich <jo@mein.io>2022-12-16 00:09:07 +0100
commit49b6ec91e90df652b52eba2a0bfb37aa9414dfc5 (patch)
tree220eb0fb5dde774003b7c15d2ff84a2c0bcd6d1e
parentb1c8873e37d4a5cd6c0c2867a763b568b27eaa15 (diff)
downloadiwinfo-49b6ec91e90df652b52eba2a0bfb37aa9414dfc5.tar.gz
cli: fix printing the scan channel width
The "chan_width" var contains an index, not a value. While at it, make the 40 and 2040 description shorter and clearer. Signed-off-by: Andre Heider <a.heider@gmail.com>
-rw-r--r--iwinfo_cli.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/iwinfo_cli.c b/iwinfo_cli.c
index 6ed60f2..c8436a4 100644
--- a/iwinfo_cli.c
+++ b/iwinfo_cli.c
@@ -340,16 +340,21 @@ static char * format_assocrate(struct iwinfo_rate_entry *r)
return buf;
}
-static const char* format_chan_width(uint16_t width)
-{
- switch (width) {
- case 20: return "20 MHz";
- case 2040: return "40 MHz and upper or 20 MHz with intolerant bit";
- case 40: return "40 MHz or lower";
- case 80: return "80 MHz";
- case 8080: return "80+80 MHz";
- case 160: return "160 MHz";
- }
+static const char* format_chan_width(bool vht, uint8_t width)
+{
+ if (!vht && width < ARRAY_SIZE(ht_chan_width))
+ switch (ht_chan_width[width]) {
+ case 20: return "20 MHz";
+ case 2040: return "40 MHz or higher";
+ }
+
+ if (vht && width < ARRAY_SIZE(vht_chan_width))
+ switch (vht_chan_width[width]) {
+ case 40: return "20 or 40 MHz";
+ case 80: return "80 MHz";
+ case 8080: return "80+80 MHz";
+ case 160: return "160 MHz";
+ }
return "unknown";
}
@@ -674,16 +679,16 @@ static void print_scanlist(const struct iwinfo_ops *iw, const char *ifname)
printf(" Secondary Channel Offset: %s\n",
ht_secondary_offset[e->ht_chan_info.secondary_chan_off]);
printf(" Channel Width: %s\n",
- format_chan_width(e->ht_chan_info.chan_width));
+ format_chan_width(false, e->ht_chan_info.chan_width));
if (e->vht_chan_info.center_chan_1) {
printf(" VHT Operation:\n");
- printf(" Channel Width: %s\n",
- format_chan_width(e->vht_chan_info.chan_width));
printf(" Center Frequency 1: %d\n",
e->vht_chan_info.center_chan_1);
printf(" Center Frequency 2: %d\n",
e->vht_chan_info.center_chan_2);
+ printf(" Channel Width: %s\n",
+ format_chan_width(true, e->vht_chan_info.chan_width));
}
printf("\n");