hostapd: add additional ubus notifications
[openwrt/openwrt.git] / package / network / services / hostapd / patches / 600-ubus_support.patch
index bfab382..35c2c13 100644 (file)
        /*
         * sta->capability is used in check_assoc_ies() for RRM enabled
         * capability element.
-@@ -3025,7 +3051,7 @@ int ieee802_11_mgmt(struct hostapd_data
+@@ -2688,6 +2714,7 @@ static void handle_disassoc(struct hosta
+       wpa_printf(MSG_DEBUG, "disassocation: STA=" MACSTR " reason_code=%d",
+                  MAC2STR(mgmt->sa),
+                  le_to_host16(mgmt->u.disassoc.reason_code));
++      hostapd_ubus_notify(hapd, "disassoc", mgmt->sa);
+       sta = ap_get_sta(hapd, mgmt->sa);
+       if (sta == NULL) {
+@@ -2742,6 +2769,8 @@ static void handle_deauth(struct hostapd
+               " reason_code=%d",
+               MAC2STR(mgmt->sa), le_to_host16(mgmt->u.deauth.reason_code));
++      hostapd_ubus_notify(hapd, "deauth", mgmt->sa);
++
+       sta = ap_get_sta(hapd, mgmt->sa);
+       if (sta == NULL) {
+               wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR " trying "
+@@ -3025,7 +3054,7 @@ int ieee802_11_mgmt(struct hostapd_data
  
  
        if (stype == WLAN_FC_STYPE_PROBE_REQ) {
                return 1;
        }
  
-@@ -3043,17 +3069,17 @@ int ieee802_11_mgmt(struct hostapd_data
+@@ -3043,17 +3072,17 @@ int ieee802_11_mgmt(struct hostapd_data
        switch (stype) {
        case WLAN_FC_STYPE_AUTH:
                wpa_printf(MSG_DEBUG, "mgmt::auth");
  #ifdef CONFIG_P2P
        if (elems.p2p) {
                wpabuf_free(sta->p2p_ie);
+--- a/src/ap/sta_info.c
++++ b/src/ap/sta_info.c
+@@ -386,6 +386,7 @@ void ap_handle_timer(void *eloop_ctx, vo
+                              HOSTAPD_LEVEL_INFO, "deauthenticated due to "
+                              "local deauth request");
+               ap_free_sta(hapd, sta);
++              hostapd_ubus_notify(hapd, "local-deauth", sta->addr);
+               return;
+       }
+@@ -533,6 +534,7 @@ skip_poll:
+                       hapd, sta,
+                       WLAN_REASON_PREV_AUTH_NOT_VALID);
+               ap_free_sta(hapd, sta);
++              hostapd_ubus_notify(hapd, "inactive-deauth", sta->addr);
+               break;
+       }
+ }
+--- a/src/ap/wpa_auth_glue.c
++++ b/src/ap/wpa_auth_glue.c
+@@ -159,6 +159,7 @@ static void hostapd_wpa_auth_psk_failure
+       struct hostapd_data *hapd = ctx;
+       wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_POSSIBLE_PSK_MISMATCH MACSTR,
+               MAC2STR(addr));
++      hostapd_ubus_notify(hapd, "key-mismatch", addr);
+ }