diff options
author | Andre Heider <a.heider@gmail.com> | 2022-11-21 18:56:38 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2022-12-16 00:09:07 +0100 |
commit | 49b6ec91e90df652b52eba2a0bfb37aa9414dfc5 (patch) | |
tree | 220eb0fb5dde774003b7c15d2ff84a2c0bcd6d1e | |
parent | b1c8873e37d4a5cd6c0c2867a763b568b27eaa15 (diff) | |
download | iwinfo-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.c | 31 |
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"); |