fix -Wdangling-else warnings
[project/iwinfo.git] / iwinfo_cli.c
index 82b409c0fcf699e7bd0107f59ff849c26d8081b4..b533ffe96fefa36ae2b8b1548a9b71c661971a3f 100644 (file)
@@ -46,7 +46,7 @@ static char * format_ssid(char *ssid)
 
 static char * format_channel(int ch)
 {
-       static char buf[8];
+       static char buf[16];
 
        if (ch <= 0)
                snprintf(buf, sizeof(buf), "unknown");
@@ -70,7 +70,7 @@ static char * format_frequency(int freq)
 
 static char * format_txpower(int pwr)
 {
-       static char buf[10];
+       static char buf[16];
 
        if (pwr < 0)
                snprintf(buf, sizeof(buf), "unknown");
@@ -82,7 +82,7 @@ static char * format_txpower(int pwr)
 
 static char * format_quality(int qual)
 {
-       static char buf[8];
+       static char buf[16];
 
        if (qual < 0)
                snprintf(buf, sizeof(buf), "unknown");
@@ -94,7 +94,7 @@ static char * format_quality(int qual)
 
 static char * format_quality_max(int qmax)
 {
-       static char buf[8];
+       static char buf[16];
 
        if (qmax < 0)
                snprintf(buf, sizeof(buf), "unknown");
@@ -158,9 +158,15 @@ static char * format_enc_ciphers(int ciphers)
        if (ciphers & IWINFO_CIPHER_CCMP)
                pos += sprintf(pos, "CCMP, ");
 
+       if (ciphers & IWINFO_CIPHER_CCMP256)
+               pos += sprintf(pos, "CCMP-256, ");
+
        if (ciphers & IWINFO_CIPHER_GCMP)
                pos += sprintf(pos, "GCMP, ");
 
+       if (ciphers & IWINFO_CIPHER_GCMP256)
+               pos += sprintf(pos, "GCMP-256, ");
+
        if (ciphers & IWINFO_CIPHER_WRAP)
                pos += sprintf(pos, "WRAP, ");
 
@@ -248,10 +254,12 @@ static char * format_encryption(struct iwinfo_crypto_entry *c)
 
                        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--;
 
@@ -322,6 +330,20 @@ static char * format_assocrate(struct iwinfo_rate_entry *r)
                                l = sizeof(buf) - (p - buf);
                        }
                }
+               else if (r->is_he)
+               {
+                       p += snprintf(p, l, ", HE-MCS %d, %dMHz", r->mcs, r->mhz);
+                       l = sizeof(buf) - (p - buf);
+
+                       p += snprintf(p, l, ", HE-NSS %d", r->nss);
+                       l = sizeof(buf) - (p - buf);
+
+                       p += snprintf(p, l, ", HE-GI %d", r->he_gi);
+                       l = sizeof(buf) - (p - buf);
+
+                       p += snprintf(p, l, ", HE-DCM %d", r->he_dcm);
+                       l = sizeof(buf) - (p - buf);
+               }
        }
 
        return buf;
@@ -861,6 +883,16 @@ static void lookup_phy(const struct iwinfo_ops *iw, const char *section)
 }
 
 
+static void lookup_path(const struct iwinfo_ops *iw, const char *phy)
+{
+       const char *path;
+
+       if (!iw->phy_path || iw->phy_path(phy, &path) || !path)
+               return;
+
+       printf("%s\n", path);
+}
+
 int main(int argc, char **argv)
 {
        int i, rv = 0;
@@ -920,6 +952,10 @@ int main(int argc, char **argv)
                }
                else
                {
+                       if (!strcmp(argv[2], "path")) {
+                               lookup_path(iw, argv[3]);
+                               return 0;
+                       }
                        switch (argv[2][0])
                        {
                        case 'p':