diff --git a/package/network/services/hostapd/src/src/ap/ubus.c b/package/network/services/hostapd/src/src/ap/ubus.c index 5b16812548..011c32a8b1 100644 --- a/package/network/services/hostapd/src/src/ap/ubus.c +++ b/package/network/services/hostapd/src/src/ap/ubus.c @@ -937,6 +937,7 @@ enum { WNM_DISASSOC_ADDR, WNM_DISASSOC_DURATION, WNM_DISASSOC_NEIGHBORS, + WNM_DISASSOC_ABRIDGED, __WNM_DISASSOC_MAX, }; @@ -944,6 +945,7 @@ static const struct blobmsg_policy wnm_disassoc_policy[__WNM_DISASSOC_MAX] = { [WNM_DISASSOC_ADDR] = { "addr", BLOBMSG_TYPE_STRING }, [WNM_DISASSOC_DURATION] { "duration", BLOBMSG_TYPE_INT32 }, [WNM_DISASSOC_NEIGHBORS] { "neighbors", BLOBMSG_TYPE_ARRAY }, + [WNM_DISASSOC_ABRIDGED] { "abridged", BLOBMSG_TYPE_BOOL }, }; static int @@ -1017,6 +1019,9 @@ hostapd_wnm_disassoc_imminent(struct ubus_context *ctx, struct ubus_object *obj, if (nr) req_mode |= WNM_BSS_TM_REQ_PREF_CAND_LIST_INCLUDED; + if (tb[WNM_DISASSOC_ABRIDGED] && blobmsg_get_bool(tb[WNM_DISASSOC_ABRIDGED])) + req_mode |= WNM_BSS_TM_REQ_ABRIDGED; + if (wnm_send_bss_tm_req(hapd, sta, req_mode, duration, 0, NULL, NULL, nr, nr_len, NULL, 0)) return UBUS_STATUS_UNKNOWN_ERROR;