summaryrefslogtreecommitdiff
path: root/iwinfo_lua.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2019-10-16 16:01:55 +0200
committerJo-Philipp Wich <jo@mein.io>2019-10-16 16:41:55 +0200
commit3ac846e7dc915969fba316d3070d327a94aefbbe (patch)
tree9977e03c93fd89d83cba2579c345de35caf5b7c2 /iwinfo_lua.c
parenta29b7d4e26a8d97e48c2a899dda3665d385b95db (diff)
downloadiwinfo-3ac846e7dc915969fba316d3070d327a94aefbbe.tar.gz
lua: fix string description of mixed WPA3 modes
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'iwinfo_lua.c')
-rw-r--r--iwinfo_lua.c51
1 files changed, 22 insertions, 29 deletions
diff --git a/iwinfo_lua.c b/iwinfo_lua.c
index 3d9d95e..58a5537 100644
--- a/iwinfo_lua.c
+++ b/iwinfo_lua.c
@@ -106,6 +106,8 @@ static char * iwinfo_crypto_print_suites(int suites)
static char * iwinfo_crypto_desc(struct iwinfo_crypto_entry *c)
{
static char desc[512] = { 0 };
+ char *pos = desc;
+ int i, n;
if (c)
{
@@ -135,35 +137,26 @@ static char * iwinfo_crypto_desc(struct iwinfo_crypto_entry *c)
/* WPA */
else if (c->wpa_version)
{
- switch (c->wpa_version) {
- case 4:
- sprintf(desc, "WPA3 %s (%s)",
- iwinfo_crypto_print_suites(c->auth_suites),
- iwinfo_crypto_print_ciphers(
- c->pair_ciphers | c->group_ciphers));
- break;
-
- case 3:
- sprintf(desc, "mixed WPA/WPA2 %s (%s)",
- iwinfo_crypto_print_suites(c->auth_suites),
- iwinfo_crypto_print_ciphers(
- c->pair_ciphers | c->group_ciphers));
- break;
-
- case 2:
- sprintf(desc, "WPA2 %s (%s)",
- iwinfo_crypto_print_suites(c->auth_suites),
- iwinfo_crypto_print_ciphers(
- c->pair_ciphers | c->group_ciphers));
- break;
-
- case 1:
- sprintf(desc, "WPA %s (%s)",
- iwinfo_crypto_print_suites(c->auth_suites),
- iwinfo_crypto_print_ciphers(
- c->pair_ciphers | c->group_ciphers));
- break;
- }
+ for (i = 0, n = 0; i < 3; i++)
+ if (c->wpa_version & (1 << i))
+ n++;
+
+ if (n > 1)
+ pos += sprintf(pos, "mixed ");
+
+ for (i = 0; i < 3; i++)
+ if (c->wpa_version & (1 << i))
+ if (i)
+ pos += sprintf(pos, "WPA%d/", i + 1);
+ else
+ pos += sprintf(pos, "WPA/");
+
+ pos--;
+
+ sprintf(pos, " %s (%s)",
+ iwinfo_crypto_print_suites(c->auth_suites),
+ iwinfo_crypto_print_ciphers(
+ c->pair_ciphers | c->group_ciphers));
}
else
{