]> git.ipfire.org Git - thirdparty/iw.git/blobdiff - event.c
update nl80211.h
[thirdparty/iw.git] / event.c
diff --git a/event.c b/event.c
index e0908dd5b5242a4d9a2fd244952d4a0d42cc44fb..fa2e125214a4beff12a1187cf6179ec92bf47d46 100644 (file)
--- a/event.c
+++ b/event.c
@@ -893,6 +893,21 @@ static void parse_ch_switch_notify(struct nlattr **attrs, int command)
        printf("\n");
 }
 
+static void parse_assoc_comeback(struct nlattr **attrs, int command)
+{
+       __u32 timeout = 0;
+       char macbuf[6 * 3] = "<unset>";
+
+       if (attrs[NL80211_ATTR_MAC])
+               mac_addr_n2a(macbuf, nla_data(attrs[NL80211_ATTR_MAC]));
+
+       if (attrs[NL80211_ATTR_TIMEOUT])
+               timeout = nla_get_u32(attrs[NL80211_ATTR_TIMEOUT]);
+
+       printf("assoc comeback bssid %s timeout %d\n",
+              macbuf, timeout);
+}
+
 static int print_event(struct nl_msg *msg, void *arg)
 {
        struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
@@ -927,7 +942,7 @@ static int print_event(struct nl_msg *msg, void *arg)
 
                        memset(buf, 0, 255);
                        strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", tm);
-                       printf("[%s.%06lu]: ", buf, args->ts.tv_usec);
+                       printf("[%s.%06lu]: ", buf, (unsigned long )args->ts.tv_usec);
                } else {
                        printf("%llu.%06llu: ", usecs/1000000, usecs % 1000000);
                }
@@ -1233,6 +1248,12 @@ static int print_event(struct nl_msg *msg, void *arg)
                case NL80211_RADAR_NOP_FINISHED:
                        printf("%d MHz: NOP finished\n", freq);
                        break;
+               case NL80211_RADAR_PRE_CAC_EXPIRED:
+                       printf("%d MHz: PRE-CAC expired\n", freq);
+                       break;
+               case NL80211_RADAR_CAC_STARTED:
+                       printf("%d MHz: CAC started\n", freq);
+                       break;
                default:
                        printf("%d MHz: unknown radar event\n", freq);
                }
@@ -1271,6 +1292,9 @@ static int print_event(struct nl_msg *msg, void *arg)
        case NL80211_CMD_CH_SWITCH_NOTIFY:
                parse_ch_switch_notify(tb, gnlh->cmd);
                break;
+       case NL80211_CMD_ASSOC_COMEBACK: /* 147 */
+               parse_assoc_comeback(tb, gnlh->cmd);
+               break;
        default:
                printf("unknown event %d (%s)\n",
                       gnlh->cmd, command_name(gnlh->cmd));