cli: print the flags on the frequency list
authorAndre Heider <a.heider@gmail.com>
Wed, 11 Jan 2023 11:13:44 +0000 (12:13 +0100)
committerChristian Marangi <ansuelsmth@gmail.com>
Fri, 20 Jan 2023 16:27:00 +0000 (17:27 +0100)
Provide info for each flags applied to the frequency on frequency list
dump.

Signed-off-by: Andre Heider <a.heider@gmail.com>
iwinfo_cli.c

index c1242bf9cd8566474c81322aa7f9025c0b34dea7..5dcee9ad023f4311fe75a7283d7c0bb788b6f976 100644 (file)
@@ -79,6 +79,25 @@ static char * format_frequency(int freq)
        return buf;
 }
 
+static char * format_freqflags(uint32_t flags)
+{
+       static char str[512] = "[";
+       char *pos = str + 1;
+       int i;
+
+       if (!flags)
+               return "";
+
+       for (i = 0; i < IWINFO_FREQ_FLAG_COUNT; i++)
+               if (flags & (1 << i))
+                       pos += sprintf(pos, "%s, ", IWINFO_FREQ_FLAG_NAMES[i]);
+
+       *(pos - 2) = ']';
+       *(pos - 1) = 0;
+
+       return str;
+}
+
 static char * format_txpower(int pwr)
 {
        static char buf[16];
@@ -742,12 +761,12 @@ static void print_freqlist(const struct iwinfo_ops *iw, const char *ifname)
        {
                e = (struct iwinfo_freqlist_entry *) &buf[i];
 
-               printf("%s %s (Band: %s, Channel %s)%s\n",
+               printf("%s %s (Band: %s, Channel %s) %s\n",
                        (freq == e->mhz) ? "*" : " ",
                        format_frequency(e->mhz),
                        format_band(e->band),
                        format_channel(e->channel),
-                       e->restricted ? " [restricted]" : "");
+                       format_freqflags(e->flags));
        }
 }