]> git.ipfire.org Git - thirdparty/iw.git/commitdiff
Print frequency of radar events.
authorBenjamin Berg <benjamin.berg@open-mesh.com>
Mon, 7 Nov 2016 14:59:43 +0000 (15:59 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 16 Nov 2016 12:40:13 +0000 (13:40 +0100)
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Benjamin Berg <benjamin.berg@open-mesh.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
event.c

diff --git a/event.c b/event.c
index 446debba9c91289829e03e8ce5d349a43158135b..3842c5c0000ba3c8229d7b1c5998afa2e569d037 100644 (file)
--- a/event.c
+++ b/event.c
@@ -584,30 +584,36 @@ static int print_event(struct nl_msg *msg, void *arg)
                                   nla_data(tb[NL80211_ATTR_VENDOR_DATA]),
                                   nla_len(tb[NL80211_ATTR_VENDOR_DATA]));
                break;
-       case NL80211_CMD_RADAR_DETECT:
-               printf("radar event ");
-               if (tb[NL80211_ATTR_RADAR_EVENT]) {
-                       switch (nla_get_u32(tb[NL80211_ATTR_RADAR_EVENT])) {
-                               case NL80211_RADAR_DETECTED:
-                                       printf("(radar detected)");
-                                       break;
-                               case NL80211_RADAR_CAC_FINISHED:
-                                       printf("(cac finished)");
-                                       break;
-                               case NL80211_RADAR_CAC_ABORTED:
-                                       printf("(cac aborted)");
-                                       break;
-                               case NL80211_RADAR_NOP_FINISHED:
-                                       printf("(nop finished)");
-                                       break;
-                               default:
-                                       printf("(unknown)");
-                                       break;
-                       };
-               } else {
-                       printf("(unknown)");
+       case NL80211_CMD_RADAR_DETECT: {
+               enum nl80211_radar_event event_type;
+               uint32_t freq;
+
+               if (!tb[NL80211_ATTR_RADAR_EVENT] ||
+                   !tb[NL80211_ATTR_WIPHY_FREQ]) {
+                       printf("BAD radar event\n");
+                       break;
+               }
+
+               freq = nla_get_u32(tb[NL80211_ATTR_WIPHY_FREQ]);
+               event_type = nla_get_u32(tb[NL80211_ATTR_RADAR_EVENT]);
+
+               switch (event_type) {
+               case NL80211_RADAR_DETECTED:
+                       printf("%d MHz: radar detected\n", freq);
+                       break;
+               case NL80211_RADAR_CAC_FINISHED:
+                       printf("%d MHz: CAC finished\n", freq);
+                       break;
+               case NL80211_RADAR_CAC_ABORTED:
+                       printf("%d MHz: CAC was aborted\n", freq);
+                       break;
+               case NL80211_RADAR_NOP_FINISHED:
+                       printf("%d MHz: NOP finished\n", freq);
+                       break;
+               default:
+                       printf("%d MHz: unknown radar event\n", freq);
+               }
                }
-               printf("\n");
                break;
        case NL80211_CMD_DEL_WIPHY:
                printf("delete wiphy\n");