cli: print the frequency and band on the scan list
[project/iwinfo.git] / iwinfo_cli.c
index d70f7fb2ecb56435255dd00ebf9534ba1fb223d9..c1242bf9cd8566474c81322aa7f9025c0b34dea7 100644 (file)
@@ -44,6 +44,17 @@ static char * format_ssid(char *ssid)
        return buf;
 }
 
+static const char *format_band(int band)
+{
+       const char *name;
+
+       name = iwinfo_band_name(band);
+       if (name)
+               return name;
+
+       return "unknown";
+}
+
 static char * format_channel(int ch)
 {
        static char buf[16];
@@ -335,9 +346,16 @@ static char * print_hardware_id(const struct iwinfo_ops *iw, const char *ifname)
 
        if (!iw->hardware_id(ifname, (char *)&ids))
        {
-               snprintf(buf, sizeof(buf), "%04X:%04X %04X:%04X",
-                       ids.vendor_id, ids.device_id,
-                       ids.subsystem_vendor_id, ids.subsystem_device_id);
+               if (strlen(ids.compatible) > 0)
+                       snprintf(buf, sizeof(buf), "embedded");
+               else if (ids.vendor_id == 0 && ids.device_id == 0 &&
+                        ids.subsystem_vendor_id != 0 && ids.subsystem_device_id != 0)
+                       snprintf(buf, sizeof(buf), "USB %04X:%04X",
+                               ids.subsystem_vendor_id, ids.subsystem_device_id);
+               else
+                       snprintf(buf, sizeof(buf), "%04X:%04X %04X:%04X",
+                               ids.vendor_id, ids.device_id,
+                               ids.subsystem_vendor_id, ids.subsystem_device_id);
        }
        else
        {
@@ -641,8 +659,10 @@ static void print_scanlist(const struct iwinfo_ops *iw, const char *ifname)
                        format_bssid(e->mac));
                printf("          ESSID: %s\n",
                        format_ssid(e->ssid));
-               printf("          Mode: %s  Channel: %s\n",
+               printf("          Mode: %s  Frequency: %s  Band: %s  Channel: %s\n",
                        IWINFO_OPMODE_NAMES[e->mode],
+                       format_frequency(e->mhz),
+                       format_band(e->band),
                        format_channel(e->channel));
                printf("          Signal: %s  Quality: %s/%s\n",
                        format_signal(e->signal - 0x100),
@@ -722,9 +742,10 @@ static void print_freqlist(const struct iwinfo_ops *iw, const char *ifname)
        {
                e = (struct iwinfo_freqlist_entry *) &buf[i];
 
-               printf("%s %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]" : "");
        }