X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/0b7b8ea93fa69d0405ce63fd9e10c64394693043..957731ef89fc1876a0ab8c56d50001011b20abb0:/package/iwinfo/src/iwinfo_cli.c diff --git a/package/iwinfo/src/iwinfo_cli.c b/package/iwinfo/src/iwinfo_cli.c index dc8ed8b14..7ec5aef95 100644 --- a/package/iwinfo/src/iwinfo_cli.c +++ b/package/iwinfo/src/iwinfo_cli.c @@ -134,7 +134,8 @@ static char * format_rate(int rate) if (rate <= 0) snprintf(buf, sizeof(buf), "unknown"); else - snprintf(buf, sizeof(buf), "%.1f MBit/s", ((float)rate / 1000.0)); + snprintf(buf, sizeof(buf), "%d.%d MBit/s", + rate / 1000, (rate % 1000) / 100); return buf; } @@ -230,19 +231,19 @@ static char * format_encryption(struct iwinfo_crypto_entry *c) case 3: snprintf(buf, sizeof(buf), "mixed WPA/WPA2 %s (%s)", format_enc_suites(c->auth_suites), - format_enc_ciphers(c->pair_ciphers & c->group_ciphers)); + format_enc_ciphers(c->pair_ciphers | c->group_ciphers)); break; case 2: snprintf(buf, sizeof(buf), "WPA2 %s (%s)", format_enc_suites(c->auth_suites), - format_enc_ciphers(c->pair_ciphers & c->group_ciphers)); + format_enc_ciphers(c->pair_ciphers | c->group_ciphers)); break; case 1: snprintf(buf, sizeof(buf), "WPA %s (%s)", format_enc_suites(c->auth_suites), - format_enc_ciphers(c->pair_ciphers & c->group_ciphers)); + format_enc_ciphers(c->pair_ciphers | c->group_ciphers)); break; } } @@ -391,10 +392,13 @@ static char * print_bssid(const struct iwinfo_ops *iw, const char *ifname) static char * print_mode(const struct iwinfo_ops *iw, const char *ifname) { + int mode; static char buf[128]; - if (iw->mode(ifname, buf)) - snprintf(buf, sizeof(buf), "unknown"); + if (iw->mode(ifname, &mode)) + mode = IWINFO_OPMODE_UNKNOWN; + + snprintf(buf, sizeof(buf), "%s", IWINFO_OPMODE_NAMES[mode]); return buf; } @@ -572,7 +576,7 @@ static void print_scanlist(const struct iwinfo_ops *iw, const char *ifname) printf(" ESSID: %s\n", format_ssid(e->ssid)); printf(" Mode: %s Channel: %s\n", - e->mode ? (char *)e->mode : "unknown", + IWINFO_OPMODE_NAMES[e->mode], format_channel(e->channel)); printf(" Signal: %s Quality: %s/%s\n", format_signal(e->signal - 0x100),