Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/809717/?format=api
{ "id": 809717, "url": "http://patchwork.ozlabs.org/api/patches/809717/?format=api", "web_url": "http://patchwork.ozlabs.org/project/lede/patch/1504537660-31071-1-git-send-email-koen.vandeputte@ncentric.com/", "project": { "id": 54, "url": "http://patchwork.ozlabs.org/api/projects/54/?format=api", "name": "LEDE development", "link_name": "lede", "list_id": "lede-dev.lists.infradead.org", "list_email": "lede-dev@lists.infradead.org", "web_url": "http://lede-project.org/", "scm_url": "", "webscm_url": "http://git.lede-project.org/", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1504537660-31071-1-git-send-email-koen.vandeputte@ncentric.com>", "list_archive_url": null, "date": "2017-09-04T15:07:40", "name": "[LEDE-DEV] hostapd: update to version 2017-08-24", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "c5dc90e7612663383227818cee6aa366eb064939", "submitter": { "id": 69184, "url": "http://patchwork.ozlabs.org/api/people/69184/?format=api", "name": "Koen Vandeputte", "email": "koen.vandeputte@ncentric.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/lede/patch/1504537660-31071-1-git-send-email-koen.vandeputte@ncentric.com/mbox/", "series": [ { "id": 1403, "url": "http://patchwork.ozlabs.org/api/series/1403/?format=api", "web_url": "http://patchwork.ozlabs.org/project/lede/list/?series=1403", "date": "2017-09-04T15:07:40", "name": "[LEDE-DEV] hostapd: update to version 2017-08-24", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/1403/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/809717/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/809717/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org; spf=none (mailfrom)\n\tsmtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133;\n\thelo=bombadil.infradead.org;\n\tenvelope-from=lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org header.b=\"ltOKdtvV\"; \n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ncentric.com header.i=@ncentric.com\n\theader.b=\"eDCExiWD\"; dkim-atps=neutral" ], "Received": [ "from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xmCt13T3lz9t2Z\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 5 Sep 2017 01:08:57 +1000 (AEST)", "from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1doszN-0003a8-RJ; Mon, 04 Sep 2017 15:08:37 +0000", "from mail-wm0-x236.google.com ([2a00:1450:400c:c09::236])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1doszF-0003W2-IU\n\tfor lede-dev@lists.infradead.org; Mon, 04 Sep 2017 15:08:36 +0000", "by mail-wm0-x236.google.com with SMTP id 137so16279927wmj.1\n\tfor <lede-dev@lists.infradead.org>;\n\tMon, 04 Sep 2017 08:08:08 -0700 (PDT)", "from localhost.localdomain (d515300d8.static.telenet.be.\n\t[81.83.0.216]) by smtp.googlemail.com with ESMTPSA id\n\tp4sm3481550edd.0.2017.09.04.08.08.04\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tMon, 04 Sep 2017 08:08:05 -0700 (PDT)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe:\n\tList-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Subject:Message-Id:\n\tDate:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:\n\tResent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:\n\tList-Owner; bh=3KLfeRssbUsiT3S8JkFX8FosQd+MdGNmMlHnhjwbjO4=;\n\tb=ltOKdtvVwNC2TC\n\tA7wSEBVGl0877pXyUgt/fA2p7UuD/rX6jbqzGvmLKkBrubzJEZ4v4vIzrbEZb9Jw/WVNynnIWRBCr\n\tkt5y3GciIR/f679aORZhvAQt0TmCpv6yBASfsv/qWpwbz8yNxmjYVfIFiV1vqGvvYYpDbhf+w6OQG\n\tmbrP/1a8HoOu9sn/uV8SjW7aNN1w1t+SSQgspD1ArNhurMOdXQYX2Vne2w3gQ7mfYhsufzoSwfK74\n\tBJ+0SVxj+CvAjK2R6OD2qj7LhoQW5aUxRDf1oD5AT05Q4OUQkaDoPA8lhCaUfaOpZTi30tBR2ikuh\n\tq0zekHNFLxvoCCp7UT+w==;", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=ncentric.com;\n\ts=google; h=from:to:cc:subject:date:message-id;\n\tbh=0JCrCmZqeRjii11pbV24OmefvYjyHhRW2IEQYnLzxHE=;\n\tb=eDCExiWDsPTO7YcEC/Wk3VyYOqoR5Ts3f4CIVcncTRAV3wB02MPt1N+qWCLilrXDat\n\tgva8ArGRlq3f5Y5F6K4GC3QOjbaK/09RK/LjGDqEREb0yVvDhm4wswYnPHfWc0o/Yq2M\n\txKPHuakwYvHh19ZFkF1ZZ/7kbmU5IAUwmkoD8=" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id;\n\tbh=0JCrCmZqeRjii11pbV24OmefvYjyHhRW2IEQYnLzxHE=;\n\tb=hQDX3C3eNo8Up06mHOuahHmUBPdGlLc+3j7k9Cd93xfQ/+oXIqwrNGEj+7TzwQYtuO\n\teWq5pVhJ5GoAVmqNkFgYTtOL10E567DGxMiV5zrQMzbkJVMqE/lzmT4+P9qimQW1AdkJ\n\tr8ijPDaTAdHY+nNZyAhA+yx4EPS+Ovu4OWCz5k8wkAKU+gYZ/gS90glB0W1CtZDyqccI\n\tdt6m63nM4/sbC1E5Z47qlhZOXODCLwvQJ/uTvykOJnGIbmOr4DDBO4tAmrVaJQj6BxvT\n\tYHmpYsxUsE5kn5zHyhOHd1ubnqS5pVfTzj1cxG2kwPORuX/aCJx7pzxmtFwnNIUeOdyC\n\tBDXg==", "X-Gm-Message-State": "AHPjjUiUee4oESQG/22J9eJW7nXmhuLymRu4otveyYh9N0S4FAqR7Av1\n\t6B9cUowq/bYEOF0RWlS2Dg==", "X-Google-Smtp-Source": "ADKCNb6zZiBVPeYQD2llV/inr4PlxXCIDE7zk7vR1CnqgSJuscu5vYBDgoOW/V3231Tca1thxz/Qxg==", "X-Received": "by 10.80.168.1 with SMTP id j1mr715219edc.93.1504537685694;\n\tMon, 04 Sep 2017 08:08:05 -0700 (PDT)", "From": "Koen Vandeputte <koen.vandeputte@ncentric.com>", "To": "lede-dev@lists.infradead.org", "Date": "Mon, 4 Sep 2017 17:07:40 +0200", "Message-Id": "<1504537660-31071-1-git-send-email-koen.vandeputte@ncentric.com>", "X-Mailer": "git-send-email 2.7.4", "X-CRM114-Version": "20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ", "X-CRM114-CacheID": "sfid-20170904_080830_321139_AD6CCF16 ", "X-CRM114-Status": "GOOD ( 19.83 )", "X-Spam-Score": "-2.7 (--)", "X-Spam-Report": "SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details: (-2.7 points)\n\tpts rule name description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/,\n\tlow\n\ttrust [2a00:1450:400c:c09:0:0:0:236 listed in] [list.dnswl.org]\n\t-0.0 SPF_PASS SPF: sender matches SPF record\n\t-1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]\n\t-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature\n\t0.1 DKIM_SIGNED Message has a DKIM or DK signature,\n\tnot necessarily valid\n\t-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from\n\tauthor's domain", "Subject": "[LEDE-DEV] [PATCH] hostapd: update to version 2017-08-24", "X-BeenThere": "lede-dev@lists.infradead.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<lede-dev.lists.infradead.org>", "List-Unsubscribe": "<http://lists.infradead.org/mailman/options/lede-dev>,\n\t<mailto:lede-dev-request@lists.infradead.org?subject=unsubscribe>", "List-Archive": "<http://lists.infradead.org/pipermail/lede-dev/>", "List-Post": "<mailto:lede-dev@lists.infradead.org>", "List-Help": "<mailto:lede-dev-request@lists.infradead.org?subject=help>", "List-Subscribe": "<http://lists.infradead.org/mailman/listinfo/lede-dev>,\n\t<mailto:lede-dev-request@lists.infradead.org?subject=subscribe>", "Cc": "hauke@hauke-m.de, Koen Vandeputte <koen.vandeputte@ncentric.com>,\n\tnbd@nbd.name", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Sender": "\"Lede-dev\" <lede-dev-bounces@lists.infradead.org>", "Errors-To": "lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org" }, "content": "- Deleted upstreamed patches & parts\n- Refreshed all\n\nCompile tested: full-option package + tools (hostapd + wpa_supplicant)\nRun-tested: hostapd wpa2 hotspot & wpa_supplicant IBSS link\n\nTargets: cns3xxx\n\nSigned-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>\n---\n package/network/services/hostapd/Makefile | 8 +-\n ...ndition-between-AssocResp-callback-and-4a.patch | 83 ------------\n ...cate-Reassociation-Request-frame-dropping.patch | 36 -----\n ...ix-TK-clearing-on-Authentication-frame-RX.patch | 40 ------\n ...-possibility-to-send-debug-messages-to-sy.patch | 145 ---------------------\n .../hostapd/patches/100-daemonize_fix.patch | 2 +-\n .../hostapd/patches/110-no_eapol_fix.patch | 2 +-\n .../120-disable_bridge_packet_workaround.patch | 2 +-\n .../services/hostapd/patches/200-multicall.patch | 57 ++++----\n .../services/hostapd/patches/300-noscan.patch | 6 +-\n .../hostapd/patches/310-rescan_immediately.patch | 2 +-\n .../hostapd/patches/330-nl80211_fix_set_freq.patch | 2 +-\n .../hostapd/patches/340-reload_freq_change.patch | 6 +-\n .../patches/350-nl80211_del_beacon_bss.patch | 48 +++----\n .../hostapd/patches/360-ctrl_iface_reload.patch | 8 +-\n .../hostapd/patches/370-ap_sta_support.patch | 20 +--\n .../patches/380-disable_ctrl_iface_mib.patch | 32 ++---\n .../patches/390-wpa_ie_cap_workaround.patch | 4 +-\n .../hostapd/patches/420-indicate-features.patch | 4 +-\n .../hostapd/patches/430-hostapd_cli_ifdef.patch | 16 +--\n ...ant-add-new-config-params-to-be-used-with.patch | 14 +-\n ...80211-use-new-parameters-during-ibss-join.patch | 4 +-\n .../patches/462-wpa_s-support-htmode-param.patch | 12 +-\n .../hostapd/patches/470-survey_data_fallback.patch | 2 +-\n .../hostapd/patches/600-ubus_support.patch | 70 +++++-----\n 25 files changed, 146 insertions(+), 479 deletions(-)\n delete mode 100644 package/network/services/hostapd/patches/001-Fix-race-condition-between-AssocResp-callback-and-4a.patch\n delete mode 100644 package/network/services/hostapd/patches/002-Fix-duplicate-Reassociation-Request-frame-dropping.patch\n delete mode 100644 package/network/services/hostapd/patches/003-RSN-IBSS-Fix-TK-clearing-on-Authentication-frame-RX.patch\n delete mode 100644 package/network/services/hostapd/patches/004-hostapd-Add-possibility-to-send-debug-messages-to-sy.patch", "diff": "diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile\nindex 8a1f083..2558f2d 100644\n--- a/package/network/services/hostapd/Makefile\n+++ b/package/network/services/hostapd/Makefile\n@@ -7,13 +7,13 @@\n include $(TOPDIR)/rules.mk\n \n PKG_NAME:=hostapd\n-PKG_RELEASE:=4\n+PKG_RELEASE:=1\n \n PKG_SOURCE_URL:=http://w1.fi/hostap.git\n PKG_SOURCE_PROTO:=git\n-PKG_SOURCE_DATE:=2016-12-19\n-PKG_SOURCE_VERSION:=ad02e79d12fd70ed6bd5fbaf64001a2851e5bb7b\n-PKG_MIRROR_HASH:=7a0983f004b156d46911765c113754a4c00f56fb889430620bbd061b3b1fcf33\n+PKG_SOURCE_DATE:=2017-08-24\n+PKG_SOURCE_VERSION:=c2d4f2eb5dba0b5c5a8c5805823084da958a9b52\n+PKG_MIRROR_HASH:=c6ad9a73fc1ae0ba8bc48f71cf14394b274bc9c2c1d1b53c2775f08312597e74\n \n PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>\n PKG_LICENSE:=BSD-3-Clause\ndiff --git a/package/network/services/hostapd/patches/001-Fix-race-condition-between-AssocResp-callback-and-4a.patch b/package/network/services/hostapd/patches/001-Fix-race-condition-between-AssocResp-callback-and-4a.patch\ndeleted file mode 100644\nindex bf54e9d..0000000\n--- a/package/network/services/hostapd/patches/001-Fix-race-condition-between-AssocResp-callback-and-4a.patch\n+++ /dev/null\n@@ -1,83 +0,0 @@\n-From: Jouni Malinen <jouni@qca.qualcomm.com>\n-Date: Tue, 20 Dec 2016 01:30:09 +0200\n-Subject: [PATCH] Fix race condition between AssocResp callback and 4addr event\n-\n-It is apparently possible for the NL80211_CMD_UNEXPECTED_4ADDR_FRAME\n-event to be delivered to hostapd before the NL80211_CMD_FRAME_TX_STATUS\n-event for (Re)Association Response frame. This resulted in the 4-address\n-WDS mode not getting enabled for a STA. This could occur in particular\n-when operating under heavy load and the STA is reconnecting to the same\n-AP in a sequence where Deauthentication frame is followed immediately by\n-Authentication frame and the driver event processing gets delayed due to\n-removal of the previous netdev taking time in the middle of this\n-sequence.\n-\n-Fix this by recording a pending item for 4-address WDS enabling if the\n-NL80211_CMD_UNEXPECTED_4ADDR_FRAME event would have been dropped due to\n-incompleted association and then process this pending item if the TX\n-status for the (Re)Association Response frame is received and it shows\n-that the frame was acknowledged.\n-\n-Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>\n----\n-\n---- a/src/ap/ieee802_11.c\n-+++ b/src/ap/ieee802_11.c\n-@@ -2634,6 +2634,8 @@ static void handle_assoc(struct hostapd_\n- \ttaxonomy_sta_info_assoc_req(hapd, sta, pos, left);\n- #endif /* CONFIG_TAXONOMY */\n- \n-+\tsta->pending_wds_enable = 0;\n-+\n- fail:\n- \t/*\n- \t * In case of a successful response, add the station to the driver.\n-@@ -3248,6 +3250,14 @@ static void handle_assoc_cb(struct hosta\n- \n- \thostapd_set_sta_flags(hapd, sta);\n- \n-+\tif (!(sta->flags & WLAN_STA_WDS) && sta->pending_wds_enable) {\n-+\t\twpa_printf(MSG_DEBUG, \"Enable 4-address WDS mode for STA \"\n-+\t\t\t MACSTR \" based on pending request\",\n-+\t\t\t MAC2STR(sta->addr));\n-+\t\tsta->pending_wds_enable = 0;\n-+\t\tsta->flags |= WLAN_STA_WDS;\n-+\t}\n-+\n- \tif (sta->flags & WLAN_STA_WDS) {\n- \t\tint ret;\n- \t\tchar ifname_wds[IFNAMSIZ + 1];\n-@@ -3512,10 +3522,22 @@ void ieee802_11_rx_from_unknown(struct h\n- \tstruct sta_info *sta;\n- \n- \tsta = ap_get_sta(hapd, src);\n--\tif (sta && (sta->flags & WLAN_STA_ASSOC)) {\n-+\tif (sta &&\n-+\t ((sta->flags & WLAN_STA_ASSOC) ||\n-+\t ((sta->flags & WLAN_STA_ASSOC_REQ_OK) && wds))) {\n- \t\tif (!hapd->conf->wds_sta)\n- \t\t\treturn;\n- \n-+\t\tif ((sta->flags & (WLAN_STA_ASSOC | WLAN_STA_ASSOC_REQ_OK)) ==\n-+\t\t WLAN_STA_ASSOC_REQ_OK) {\n-+\t\t\twpa_printf(MSG_DEBUG,\n-+\t\t\t\t \"Postpone 4-address WDS mode enabling for STA \"\n-+\t\t\t\t MACSTR \" since TX status for AssocResp is not yet known\",\n-+\t\t\t\t MAC2STR(sta->addr));\n-+\t\t\tsta->pending_wds_enable = 1;\n-+\t\t\treturn;\n-+\t\t}\n-+\n- \t\tif (wds && !(sta->flags & WLAN_STA_WDS)) {\n- \t\t\tint ret;\n- \t\t\tchar ifname_wds[IFNAMSIZ + 1];\n---- a/src/ap/sta_info.h\n-+++ b/src/ap/sta_info.h\n-@@ -115,6 +115,7 @@ struct sta_info {\n- \tunsigned int radius_das_match:1;\n- \tunsigned int ecsa_supported:1;\n- \tunsigned int added_unassoc:1;\n-+\tunsigned int pending_wds_enable:1;\n- \n- \tu16 auth_alg;\n- \ndiff --git a/package/network/services/hostapd/patches/002-Fix-duplicate-Reassociation-Request-frame-dropping.patch b/package/network/services/hostapd/patches/002-Fix-duplicate-Reassociation-Request-frame-dropping.patch\ndeleted file mode 100644\nindex 6db1e9b..0000000\n--- a/package/network/services/hostapd/patches/002-Fix-duplicate-Reassociation-Request-frame-dropping.patch\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-From: Jouni Malinen <jouni@qca.qualcomm.com>\n-Date: Sat, 14 Jan 2017 01:04:31 +0200\n-Subject: [PATCH] Fix duplicate Reassociation Request frame dropping\n-\n-Relational operators (==) have higher precedence than the ternary\n-conditional in C. The last_subtype check for association/reassociation\n-was broken due to incorrect assumption about the precedence. Fix this by\n-adding parenthesis around the ternary conditional.\n-\n-The previous implementation worked for Association Request frames by\n-accident since WLAN_FC_STYPE_ASSOC_REQ happens to have value 0 and when\n-the last receive frame was an Association Request frame, the\n-sta->last_subtype == reassoc check was true and non-zero\n-WLAN_FC_STYPE_REASSOC_REQ was interpreted as true. However, this was\n-broken for Reassociation Request frame. reassoc == 1 in that case could\n-have matched received Association Response frame (subtype == 1), but\n-those are not received in AP mode and as such, this did not break other\n-behavior apart from not being able to drop duplicated Reassociation\n-Request frames.\n-\n-Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>\n----\n-\n---- a/src/ap/ieee802_11.c\n-+++ b/src/ap/ieee802_11.c\n-@@ -2485,8 +2485,8 @@ static void handle_assoc(struct hostapd_\n- \tif ((fc & WLAN_FC_RETRY) &&\n- \t sta->last_seq_ctrl != WLAN_INVALID_MGMT_SEQ &&\n- \t sta->last_seq_ctrl == seq_ctrl &&\n--\t sta->last_subtype == reassoc ? WLAN_FC_STYPE_REASSOC_REQ :\n--\t WLAN_FC_STYPE_ASSOC_REQ) {\n-+\t sta->last_subtype == (reassoc ? WLAN_FC_STYPE_REASSOC_REQ :\n-+\t\t\t\t WLAN_FC_STYPE_ASSOC_REQ)) {\n- \t\thostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,\n- \t\t\t HOSTAPD_LEVEL_DEBUG,\n- \t\t\t \"Drop repeated association frame seq_ctrl=0x%x\",\ndiff --git a/package/network/services/hostapd/patches/003-RSN-IBSS-Fix-TK-clearing-on-Authentication-frame-RX.patch b/package/network/services/hostapd/patches/003-RSN-IBSS-Fix-TK-clearing-on-Authentication-frame-RX.patch\ndeleted file mode 100644\nindex 0a3c27f..0000000\n--- a/package/network/services/hostapd/patches/003-RSN-IBSS-Fix-TK-clearing-on-Authentication-frame-RX.patch\n+++ /dev/null\n@@ -1,40 +0,0 @@\n-From: Jouni Malinen <j@w1.fi>\n-Date: Sat, 14 Jan 2017 13:56:18 +0200\n-Subject: [PATCH] RSN IBSS: Fix TK clearing on Authentication frame RX\n-\n-When wpa_supplicant was processing a received Authentication frame (seq\n-1) from a peer STA for which there was already a TK configured to the\n-driver, debug log claimed that the PTK gets cleared, but the actual\n-call to clear the key was actually dropped due to AUTH vs. SUPP set_key\n-selection. Fix this by explicitly clearing the TK in case it was set\n-and an Authentication frame (seq 1) is received.\n-\n-This fixes some cases where EAPOL-Key frames were sent encrypted using\n-the old key when a peer STA restarted itself and lost the key and had to\n-re-join the IBSS. Previously, that state required timing out the 4-way\n-handshake and Deauthentication frame exchange to recover.\n-\n-Signed-off-by: Jouni Malinen <j@w1.fi>\n----\n-\n---- a/wpa_supplicant/ibss_rsn.c\n-+++ b/wpa_supplicant/ibss_rsn.c\n-@@ -838,6 +838,18 @@ static void ibss_rsn_handle_auth_1_of_2(\n- \t\t MAC2STR(addr));\n- \n- \tif (peer &&\n-+\t peer->authentication_status & (IBSS_RSN_SET_PTK_SUPP |\n-+\t\t\t\t\t IBSS_RSN_SET_PTK_AUTH)) {\n-+\t\t/* Clear the TK for this pair to allow recovery from the case\n-+\t\t * where the peer STA has restarted and lost its key while we\n-+\t\t * still have a pairwise key configured. */\n-+\t\twpa_printf(MSG_DEBUG, \"RSN: Clear pairwise key for peer \"\n-+\t\t\t MACSTR, MAC2STR(addr));\n-+\t\twpa_drv_set_key(ibss_rsn->wpa_s, WPA_ALG_NONE, addr, 0, 0,\n-+\t\t\t\tNULL, 0, NULL, 0);\n-+\t}\n-+\n-+\tif (peer &&\n- \t peer->authentication_status & IBSS_RSN_AUTH_EAPOL_BY_PEER) {\n- \t\tif (peer->own_auth_tx.sec) {\n- \t\t\tstruct os_reltime now, diff;\ndiff --git a/package/network/services/hostapd/patches/004-hostapd-Add-possibility-to-send-debug-messages-to-sy.patch b/package/network/services/hostapd/patches/004-hostapd-Add-possibility-to-send-debug-messages-to-sy.patch\ndeleted file mode 100644\nindex 3417b5a..0000000\n--- a/package/network/services/hostapd/patches/004-hostapd-Add-possibility-to-send-debug-messages-to-sy.patch\n+++ /dev/null\n@@ -1,145 +0,0 @@\n-From cc3dae85bd694506cdea66ae532d452fb8716297 Mon Sep 17 00:00:00 2001\n-From: Wojciech Dubowik <Wojciech.Dubowik@neratec.com>\n-Date: Mon, 23 Jan 2017 13:55:04 +0100\n-Subject: [PATCH] hostapd: Add possibility to send debug messages to syslog\n-\n-We can only send module specific messages to syslog and not debug\n-messages printed with wpa_printf. Add an extra command line parameter\n-'-s' to allow it. The feature is enabled with compile flag\n-CONFIG_DEBUG_SYSLOG as for wpa_supplicant and behaves in the same manner\n-as the wpa_supplicant -s command line argument.\n-\n-Signed-off-by: Wojciech Dubowik <Wojciech.Dubowik@neratec.com>\n----\n- hostapd/Android.mk | 4 ++++\n- hostapd/Makefile | 4 ++++\n- hostapd/defconfig | 3 +++\n- hostapd/main.c | 19 ++++++++++++++++++-\n- src/utils/wpa_debug.c | 2 +-\n- src/utils/wpa_debug.h | 3 +++\n- 6 files changed, 33 insertions(+), 2 deletions(-)\n-\n---- a/hostapd/Android.mk\n-+++ b/hostapd/Android.mk\n-@@ -952,6 +952,10 @@ ifdef CONFIG_NO_STDOUT_DEBUG\n- L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG\n- endif\n- \n-+ifdef CONFIG_DEBUG_SYSLOG\n-+L_CFLAGS += -DCONFIG_DEBUG_SYSLOG\n-+endif\n-+\n- ifdef CONFIG_DEBUG_LINUX_TRACING\n- L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING\n- endif\n---- a/hostapd/Makefile\n-+++ b/hostapd/Makefile\n-@@ -997,6 +997,10 @@ ifdef CONFIG_NO_STDOUT_DEBUG\n- CFLAGS += -DCONFIG_NO_STDOUT_DEBUG\n- endif\n- \n-+ifdef CONFIG_DEBUG_SYSLOG\n-+CFLAGS += -DCONFIG_DEBUG_SYSLOG\n-+endif\n-+\n- ifdef CONFIG_DEBUG_LINUX_TRACING\n- CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING\n- endif\n---- a/hostapd/defconfig\n-+++ b/hostapd/defconfig\n-@@ -166,6 +166,9 @@ CONFIG_IPV6=y\n- # Disabled by default.\n- #CONFIG_DEBUG_FILE=y\n- \n-+# Send debug messages to syslog instead of stdout\n-+#CONFIG_DEBUG_SYSLOG=y\n-+\n- # Add support for sending all debug messages (regardless of debug verbosity)\n- # to the Linux kernel tracing facility. This helps debug the entire stack by\n- # making it easy to record everything happening from the driver up into the\n---- a/hostapd/main.c\n-+++ b/hostapd/main.c\n-@@ -108,6 +108,10 @@ static void hostapd_logger_cb(void *ctx,\n- \t\t\t module_str ? module_str : \"\",\n- \t\t\t module_str ? \": \" : \"\", txt);\n- \n-+#ifdef CONFIG_DEBUG_SYSLOG\n-+\tif (wpa_debug_syslog)\n-+\t\tconf_stdout = 0;\n-+#endif /* CONFIG_DEBUG_SYSLOG */\n- \tif ((conf_stdout & module) && level >= conf_stdout_level) {\n- \t\twpa_debug_print_timestamp();\n- \t\twpa_printf(MSG_INFO, \"%s\", format);\n-@@ -484,6 +488,9 @@ static void usage(void)\n- \t\t\" (records all messages regardless of debug verbosity)\\n\"\n- #endif /* CONFIG_DEBUG_LINUX_TRACING */\n- \t\t\" -i list of interface names to use\\n\"\n-+#ifdef CONFIG_DEBUG_SYSLOG\n-+\t\t\" -s log output to syslog instead of stdout\\n\"\n-+#endif /* CONFIG_DEBUG_SYSLOG */\n- \t\t\" -S start all the interfaces synchronously\\n\"\n- \t\t\" -t include timestamps in some debug messages\\n\"\n- \t\t\" -v show hostapd version\\n\");\n-@@ -661,7 +668,7 @@ int main(int argc, char *argv[])\n- \tdl_list_init(&interfaces.global_ctrl_dst);\n- \n- \tfor (;;) {\n--\t\tc = getopt(argc, argv, \"b:Bde:f:hi:KP:STtu:vg:G:\");\n-+\t\tc = getopt(argc, argv, \"b:Bde:f:hi:KP:sSTtu:vg:G:\");\n- \t\tif (c < 0)\n- \t\t\tbreak;\n- \t\tswitch (c) {\n-@@ -718,6 +725,11 @@ int main(int argc, char *argv[])\n- \t\t\tbss_config = tmp_bss;\n- \t\t\tbss_config[num_bss_configs++] = optarg;\n- \t\t\tbreak;\n-+#ifdef CONFIG_DEBUG_SYSLOG\n-+\t\tcase 's':\n-+\t\t\twpa_debug_syslog = 1;\n-+\t\t\tbreak;\n-+#endif /* CONFIG_DEBUG_SYSLOG */\n- \t\tcase 'S':\n- \t\t\tstart_ifaces_in_sync = 1;\n- \t\t\tbreak;\n-@@ -746,6 +758,10 @@ int main(int argc, char *argv[])\n- \t\twpa_debug_open_file(log_file);\n- \telse\n- \t\twpa_debug_setup_stdout();\n-+#ifdef CONFIG_DEBUG_SYSLOG\n-+\tif (wpa_debug_syslog)\n-+\t\twpa_debug_open_syslog();\n-+#endif /* CONFIG_DEBUG_SYSLOG */\n- #ifdef CONFIG_DEBUG_LINUX_TRACING\n- \tif (enable_trace_dbg) {\n- \t\tint tret = wpa_debug_open_linux_tracing();\n-@@ -882,6 +898,7 @@ int main(int argc, char *argv[])\n- \thostapd_global_deinit(pid_file, interfaces.eloop_initialized);\n- \tos_free(pid_file);\n- \n-+\twpa_debug_close_syslog();\n- \tif (log_file)\n- \t\twpa_debug_close_file();\n- \twpa_debug_close_linux_tracing();\n---- a/src/utils/wpa_debug.c\n-+++ b/src/utils/wpa_debug.c\n-@@ -13,7 +13,7 @@\n- #ifdef CONFIG_DEBUG_SYSLOG\n- #include <syslog.h>\n- \n--static int wpa_debug_syslog = 0;\n-+int wpa_debug_syslog = 0;\n- #endif /* CONFIG_DEBUG_SYSLOG */\n- \n- #ifdef CONFIG_DEBUG_LINUX_TRACING\n---- a/src/utils/wpa_debug.h\n-+++ b/src/utils/wpa_debug.h\n-@@ -14,6 +14,9 @@\n- extern int wpa_debug_level;\n- extern int wpa_debug_show_keys;\n- extern int wpa_debug_timestamp;\n-+#ifdef CONFIG_DEBUG_SYSLOG\n-+extern int wpa_debug_syslog;\n-+#endif /* CONFIG_DEBUG_SYSLOG */\n- \n- /* Debugging function - conditional printf and hex dump. Driver wrappers can\n- * use these for debugging purposes. */\ndiff --git a/package/network/services/hostapd/patches/100-daemonize_fix.patch b/package/network/services/hostapd/patches/100-daemonize_fix.patch\nindex fad8466..43057ef 100644\n--- a/package/network/services/hostapd/patches/100-daemonize_fix.patch\n+++ b/package/network/services/hostapd/patches/100-daemonize_fix.patch\n@@ -8,7 +8,7 @@\n \n #ifdef ANDROID\n #include <sys/capability.h>\n-@@ -179,59 +180,46 @@ int os_gmtime(os_time_t t, struct os_tm\n+@@ -182,59 +183,46 @@ int os_gmtime(os_time_t t, struct os_tm\n \treturn 0;\n }\n \ndiff --git a/package/network/services/hostapd/patches/110-no_eapol_fix.patch b/package/network/services/hostapd/patches/110-no_eapol_fix.patch\nindex 5181721..3a48a7a 100644\n--- a/package/network/services/hostapd/patches/110-no_eapol_fix.patch\n+++ b/package/network/services/hostapd/patches/110-no_eapol_fix.patch\n@@ -1,6 +1,6 @@\n --- a/wpa_supplicant/wpa_supplicant.c\n +++ b/wpa_supplicant/wpa_supplicant.c\n-@@ -259,9 +259,10 @@ void wpa_supplicant_cancel_auth_timeout(\n+@@ -265,9 +265,10 @@ void wpa_supplicant_cancel_auth_timeout(\n */\n void wpa_supplicant_initiate_eapol(struct wpa_supplicant *wpa_s)\n {\ndiff --git a/package/network/services/hostapd/patches/120-disable_bridge_packet_workaround.patch b/package/network/services/hostapd/patches/120-disable_bridge_packet_workaround.patch\nindex fdd5da9..4a5b637 100644\n--- a/package/network/services/hostapd/patches/120-disable_bridge_packet_workaround.patch\n+++ b/package/network/services/hostapd/patches/120-disable_bridge_packet_workaround.patch\n@@ -1,6 +1,6 @@\n --- a/src/l2_packet/l2_packet_linux.c\n +++ b/src/l2_packet/l2_packet_linux.c\n-@@ -337,8 +337,7 @@ struct l2_packet_data * l2_packet_init_b\n+@@ -340,8 +340,7 @@ struct l2_packet_data * l2_packet_init_b\n \n \tl2 = l2_packet_init(br_ifname, own_addr, protocol, rx_callback,\n \t\t\t rx_callback_ctx, l2_hdr);\ndiff --git a/package/network/services/hostapd/patches/200-multicall.patch b/package/network/services/hostapd/patches/200-multicall.patch\nindex f034820..0d289d5 100644\n--- a/package/network/services/hostapd/patches/200-multicall.patch\n+++ b/package/network/services/hostapd/patches/200-multicall.patch\n@@ -18,7 +18,7 @@\n OBJS += ../src/ap/vlan_init.o\n OBJS += ../src/ap/vlan_ifconfig.o\n OBJS += ../src/ap/vlan.o\n-@@ -330,10 +332,14 @@ CFLAGS += -DCONFIG_MBO\n+@@ -354,10 +356,14 @@ CFLAGS += -DCONFIG_MBO\n OBJS += ../src/ap/mbo_ap.o\n endif\n \n@@ -36,7 +36,7 @@\n LIBS += $(DRV_AP_LIBS)\n \n ifdef CONFIG_L2_PACKET\n-@@ -1077,6 +1083,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR)\n+@@ -1204,6 +1210,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR)\n \n BCHECK=../src/drivers/build.hostapd\n \n@@ -49,8 +49,8 @@\n hostapd: $(BCHECK) $(OBJS)\n \t$(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS)\n \t@$(E) \" LD \" $@\n-@@ -1118,6 +1130,12 @@ HOBJS += ../src/crypto/aes-internal.o\n- HOBJS += ../src/crypto/aes-internal-enc.o\n+@@ -1248,6 +1260,12 @@ ifeq ($(CONFIG_TLS), linux)\n+ HOBJS += ../src/crypto/crypto_linux.o\n endif\n \n +dump_cflags:\n@@ -72,7 +72,7 @@\n \n ifndef CONFIG_NO_GITVER\n # Add VERSION_STR postfix for builds from a git repository\n-@@ -329,7 +330,9 @@ endif\n+@@ -357,7 +358,9 @@ endif\n ifdef CONFIG_IBSS_RSN\n NEED_RSN_AUTHENTICATOR=y\n CFLAGS += -DCONFIG_IBSS_RSN\n@@ -82,7 +82,7 @@\n OBJS += ibss_rsn.o\n endif\n \n-@@ -820,6 +823,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS\n+@@ -861,6 +864,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS\n CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS\n LIBS += -ldl -rdynamic\n endif\n@@ -92,8 +92,8 @@\n + endif\n endif\n \n- ifdef CONFIG_MACSEC\n-@@ -840,9 +847,11 @@ NEED_EAP_COMMON=y\n+ ifdef CONFIG_AP\n+@@ -868,9 +875,11 @@ NEED_EAP_COMMON=y\n NEED_RSN_AUTHENTICATOR=y\n CFLAGS += -DCONFIG_AP\n OBJS += ap.o\n@@ -105,7 +105,7 @@\n OBJS += ../src/ap/hostapd.o\n OBJS += ../src/ap/wpa_auth_glue.o\n OBJS += ../src/ap/utils.o\n-@@ -910,6 +919,12 @@ endif\n+@@ -952,6 +961,12 @@ endif\n ifdef CONFIG_HS20\n OBJS += ../src/ap/hs20.o\n endif\n@@ -118,7 +118,7 @@\n endif\n \n ifdef CONFIG_MBO\n-@@ -918,7 +933,9 @@ CFLAGS += -DCONFIG_MBO\n+@@ -960,7 +975,9 @@ CFLAGS += -DCONFIG_MBO\n endif\n \n ifdef NEED_RSN_AUTHENTICATOR\n@@ -128,7 +128,7 @@\n NEED_AES_WRAP=y\n OBJS += ../src/ap/wpa_auth.o\n OBJS += ../src/ap/wpa_auth_ie.o\n-@@ -1706,6 +1723,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv)\n+@@ -1835,6 +1852,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv)\n \n $(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config\n \n@@ -141,7 +141,7 @@\n wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)\n \t$(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)\n \t@$(E) \" LD \" $@\n-@@ -1808,6 +1831,12 @@ endif\n+@@ -1937,6 +1960,12 @@ endif\n \t\t-e 's|\\@DBUS_INTERFACE\\@|$(DBUS_INTERFACE)|g' $< >$@\n \t@$(E) \" sed\" $<\n \n@@ -156,7 +156,7 @@\n wpa_cli.exe: wpa_cli\n --- a/src/drivers/driver.h\n +++ b/src/drivers/driver.h\n-@@ -4968,8 +4968,8 @@ union wpa_event_data {\n+@@ -5317,8 +5317,8 @@ union wpa_event_data {\n * Driver wrapper code should call this function whenever an event is received\n * from the driver.\n */\n@@ -167,7 +167,7 @@\n \n /**\n * wpa_supplicant_event_global - Report a driver event for wpa_supplicant\n-@@ -4981,7 +4981,7 @@ void wpa_supplicant_event(void *ctx, enu\n+@@ -5330,7 +5330,7 @@ void wpa_supplicant_event(void *ctx, enu\n * Same as wpa_supplicant_event(), but we search for the interface in\n * wpa_global.\n */\n@@ -178,7 +178,7 @@\n /*\n --- a/src/ap/drv_callbacks.c\n +++ b/src/ap/drv_callbacks.c\n-@@ -1163,8 +1163,8 @@ static void hostapd_event_dfs_cac_starte\n+@@ -1375,8 +1375,8 @@ static void hostapd_event_dfs_cac_starte\n #endif /* NEED_AP_MLME */\n \n \n@@ -189,7 +189,7 @@\n {\n \tstruct hostapd_data *hapd = ctx;\n #ifndef CONFIG_NO_STDOUT_DEBUG\n-@@ -1373,7 +1373,7 @@ void wpa_supplicant_event(void *ctx, enu\n+@@ -1590,7 +1590,7 @@ void wpa_supplicant_event(void *ctx, enu\n }\n \n \n@@ -231,7 +231,7 @@\n \tos_memset(&global, 0, sizeof(global));\n --- a/wpa_supplicant/events.c\n +++ b/wpa_supplicant/events.c\n-@@ -3610,8 +3610,8 @@ static void wpa_supplicant_event_assoc_a\n+@@ -3709,8 +3709,8 @@ static void wpa_supplicant_event_assoc_a\n }\n \n \n@@ -242,16 +242,7 @@\n {\n \tstruct wpa_supplicant *wpa_s = ctx;\n \tint resched;\n-@@ -4315,7 +4315,7 @@ void wpa_supplicant_event(void *ctx, enu\n- #endif /* CONFIG_AP */\n- \t\tbreak;\n- \tcase EVENT_ACS_CHANNEL_SELECTED:\n--#ifdef CONFIG_ACS\n-+#if defined(CONFIG_ACS) && defined(CONFIG_AP)\n- \t\tif (!wpa_s->ap_iface)\n- \t\t\tbreak;\n- \t\thostapd_acs_channel_selected(wpa_s->ap_iface->bss[0],\n-@@ -4337,7 +4337,7 @@ void wpa_supplicant_event(void *ctx, enu\n+@@ -4466,7 +4466,7 @@ void wpa_supplicant_event(void *ctx, enu\n }\n \n \n@@ -262,7 +253,7 @@\n \tstruct wpa_supplicant *wpa_s;\n --- a/wpa_supplicant/wpa_supplicant.c\n +++ b/wpa_supplicant/wpa_supplicant.c\n-@@ -5136,7 +5136,6 @@ struct wpa_interface * wpa_supplicant_ma\n+@@ -5457,7 +5457,6 @@ struct wpa_interface * wpa_supplicant_ma\n \treturn NULL;\n }\n \n@@ -270,7 +261,7 @@\n /**\n * wpa_supplicant_match_existing - Match existing interfaces\n * @global: Pointer to global data from wpa_supplicant_init()\n-@@ -5173,6 +5172,11 @@ static int wpa_supplicant_match_existing\n+@@ -5494,6 +5493,11 @@ static int wpa_supplicant_match_existing\n \n #endif /* CONFIG_MATCH_IFACE */\n \n@@ -282,7 +273,7 @@\n \n /**\n * wpa_supplicant_add_iface - Add a new network interface\n-@@ -5428,6 +5432,8 @@ struct wpa_global * wpa_supplicant_init(\n+@@ -5750,6 +5754,8 @@ struct wpa_global * wpa_supplicant_init(\n #ifndef CONFIG_NO_WPA_MSG\n \twpa_msg_register_ifname_cb(wpa_supplicant_msg_ifname_cb);\n #endif /* CONFIG_NO_WPA_MSG */\n@@ -305,9 +296,9 @@\n \n #ifdef CONFIG_WPS\n static int gen_uuid(const char *txt_addr)\n-@@ -667,6 +672,8 @@ int main(int argc, char *argv[])\n- \tinterfaces.global_ctrl_sock = -1;\n- \tdl_list_init(&interfaces.global_ctrl_dst);\n+@@ -670,6 +675,8 @@ int main(int argc, char *argv[])\n+ \tdl_list_init(&interfaces.eth_p_oui);\n+ #endif /* CONFIG_ETH_P_OUI */\n \n +\twpa_supplicant_event = hostapd_wpa_event;\n +\twpa_supplicant_event_global = hostapd_wpa_event_global;\ndiff --git a/package/network/services/hostapd/patches/300-noscan.patch b/package/network/services/hostapd/patches/300-noscan.patch\nindex 9dc0f2c..6db16c9 100644\n--- a/package/network/services/hostapd/patches/300-noscan.patch\n+++ b/package/network/services/hostapd/patches/300-noscan.patch\n@@ -1,6 +1,6 @@\n --- a/hostapd/config_file.c\n +++ b/hostapd/config_file.c\n-@@ -2953,6 +2953,10 @@ static int hostapd_config_fill(struct ho\n+@@ -3014,6 +3014,10 @@ static int hostapd_config_fill(struct ho\n \t\t}\n #endif /* CONFIG_IEEE80211W */\n #ifdef CONFIG_IEEE80211N\n@@ -13,7 +13,7 @@\n \t} else if (os_strcmp(buf, \"ht_capab\") == 0) {\n --- a/src/ap/ap_config.h\n +++ b/src/ap/ap_config.h\n-@@ -681,6 +681,8 @@ struct hostapd_config {\n+@@ -734,6 +734,8 @@ struct hostapd_config {\n \n \tint ht_op_mode_fixed;\n \tu16 ht_capab;\n@@ -24,7 +24,7 @@\n \tint no_pri_sec_switch;\n --- a/src/ap/hw_features.c\n +++ b/src/ap/hw_features.c\n-@@ -474,7 +474,8 @@ static int ieee80211n_check_40mhz(struct\n+@@ -480,7 +480,8 @@ static int ieee80211n_check_40mhz(struct\n \tint ret;\n \n \t/* Check that HT40 is used and PRI / SEC switch is allowed */\ndiff --git a/package/network/services/hostapd/patches/310-rescan_immediately.patch b/package/network/services/hostapd/patches/310-rescan_immediately.patch\nindex ccc9781..6846db2 100644\n--- a/package/network/services/hostapd/patches/310-rescan_immediately.patch\n+++ b/package/network/services/hostapd/patches/310-rescan_immediately.patch\n@@ -1,6 +1,6 @@\n --- a/wpa_supplicant/wpa_supplicant.c\n +++ b/wpa_supplicant/wpa_supplicant.c\n-@@ -3696,7 +3696,7 @@ wpa_supplicant_alloc(struct wpa_supplica\n+@@ -3927,7 +3927,7 @@ wpa_supplicant_alloc(struct wpa_supplica\n \tif (wpa_s == NULL)\n \t\treturn NULL;\n \twpa_s->scan_req = INITIAL_SCAN_REQ;\ndiff --git a/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch b/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch\nindex ebb12f6..3bc916b 100644\n--- a/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch\n+++ b/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch\n@@ -1,6 +1,6 @@\n --- a/src/drivers/driver_nl80211.c\n +++ b/src/drivers/driver_nl80211.c\n-@@ -4104,7 +4104,7 @@ static int nl80211_set_channel(struct i8\n+@@ -4152,7 +4152,7 @@ static int nl80211_set_channel(struct i8\n \t\t freq->freq, freq->ht_enabled, freq->vht_enabled,\n \t\t freq->bandwidth, freq->center_freq1, freq->center_freq2);\n \ndiff --git a/package/network/services/hostapd/patches/340-reload_freq_change.patch b/package/network/services/hostapd/patches/340-reload_freq_change.patch\nindex 0dcd7c9..f05b914 100644\n--- a/package/network/services/hostapd/patches/340-reload_freq_change.patch\n+++ b/package/network/services/hostapd/patches/340-reload_freq_change.patch\n@@ -1,6 +1,6 @@\n --- a/src/ap/hostapd.c\n +++ b/src/ap/hostapd.c\n-@@ -80,6 +80,25 @@ static void hostapd_reload_bss(struct ho\n+@@ -87,6 +87,25 @@ static void hostapd_reload_bss(struct ho\n #endif /* CONFIG_NO_RADIUS */\n \n \tssid = &hapd->conf->ssid;\n@@ -26,7 +26,7 @@\n \tif (!ssid->wpa_psk_set && ssid->wpa_psk && !ssid->wpa_psk->next &&\n \t ssid->wpa_passphrase_set && ssid->wpa_passphrase) {\n \t\t/*\n-@@ -158,6 +177,7 @@ int hostapd_reload_config(struct hostapd\n+@@ -165,6 +184,7 @@ int hostapd_reload_config(struct hostapd\n \tstruct hostapd_data *hapd = iface->bss[0];\n \tstruct hostapd_config *newconf, *oldconf;\n \tsize_t j;\n@@ -34,7 +34,7 @@\n \n \tif (iface->config_fname == NULL) {\n \t\t/* Only in-memory config in use - assume it has been updated */\n-@@ -179,21 +199,20 @@ int hostapd_reload_config(struct hostapd\n+@@ -186,21 +206,20 @@ int hostapd_reload_config(struct hostapd\n \toldconf = hapd->iconf;\n \tiface->conf = newconf;\n \ndiff --git a/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch b/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch\nindex be10a41..32586c0 100644\n--- a/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch\n+++ b/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch\n@@ -1,72 +1,54 @@\n --- a/src/drivers/driver_nl80211.c\n +++ b/src/drivers/driver_nl80211.c\n-@@ -2490,13 +2490,18 @@ wpa_driver_nl80211_finish_drv_init(struc\n- }\n- \n- \n--static int wpa_driver_nl80211_del_beacon(struct wpa_driver_nl80211_data *drv)\n-+static int wpa_driver_nl80211_del_beacon(struct i802_bss *bss)\n- {\n-+\tstruct wpa_driver_nl80211_data *drv = bss->drv;\n+@@ -2536,10 +2536,15 @@ static int wpa_driver_nl80211_del_beacon\n \tstruct nl_msg *msg;\n+ \tstruct wpa_driver_nl80211_data *drv = bss->drv;\n \n +\tif (!bss->beacon_set)\n +\t\treturn 0;\n +\n +\tbss->beacon_set = 0;\n++\n \twpa_printf(MSG_DEBUG, \"nl80211: Remove beacon (ifindex=%d)\",\n -\t\t drv->ifindex);\n--\tmsg = nl80211_drv_msg(drv, 0, NL80211_CMD_DEL_BEACON);\n +\t\t bss->ifindex);\n-+\tmsg = nl80211_bss_msg(bss, 0, NL80211_CMD_DEL_BEACON);\n+ \tnl80211_put_wiphy_data_ap(bss);\n+-\tmsg = nl80211_drv_msg(drv, 0, NL80211_CMD_DEL_BEACON);\n++\tmsg = nl80211_drv_msg(bss, 0, NL80211_CMD_DEL_BEACON);\n \treturn send_and_recv_msgs(drv, msg, NULL, NULL);\n }\n \n-@@ -2548,7 +2553,7 @@ static void wpa_driver_nl80211_deinit(st\n- \tnl80211_remove_monitor_interface(drv);\n- \n- \tif (is_ap_interface(drv->nlmode))\n--\t\twpa_driver_nl80211_del_beacon(drv);\n-+\t\twpa_driver_nl80211_del_beacon(bss);\n- \n- \tif (drv->eapol_sock >= 0) {\n- \t\teloop_unregister_read_sock(drv->eapol_sock);\n-@@ -4703,8 +4708,7 @@ static void nl80211_teardown_ap(struct i\n- \t\tnl80211_remove_monitor_interface(drv);\n- \telse\n+@@ -4753,7 +4758,7 @@ static void nl80211_teardown_ap(struct i\n \t\tnl80211_mgmt_unsubscribe(bss, \"AP teardown\");\n--\n+ \n+ \tnl80211_put_wiphy_data_ap(bss);\n -\tbss->beacon_set = 0;\n +\twpa_driver_nl80211_del_beacon(bss);\n }\n \n \n-@@ -6728,8 +6732,6 @@ static int wpa_driver_nl80211_if_remove(\n+@@ -6853,8 +6858,6 @@ static int wpa_driver_nl80211_if_remove(\n \t} else {\n \t\twpa_printf(MSG_DEBUG, \"nl80211: First BSS - reassign context\");\n \t\tnl80211_teardown_ap(bss);\n -\t\tif (!bss->added_if && !drv->first_bss->next)\n--\t\t\twpa_driver_nl80211_del_beacon(drv);\n+-\t\t\twpa_driver_nl80211_del_beacon(bss);\n \t\tnl80211_destroy_bss(bss);\n \t\tif (!bss->added_if)\n \t\t\ti802_set_iface_flags(bss, 0);\n-@@ -7091,8 +7093,7 @@ static int wpa_driver_nl80211_deinit_ap(\n- \tstruct wpa_driver_nl80211_data *drv = bss->drv;\n+@@ -7225,7 +7228,6 @@ static int wpa_driver_nl80211_deinit_ap(\n \tif (!is_ap_interface(drv->nlmode))\n \t\treturn -1;\n--\twpa_driver_nl80211_del_beacon(drv);\n+ \twpa_driver_nl80211_del_beacon(bss);\n -\tbss->beacon_set = 0;\n-+\twpa_driver_nl80211_del_beacon(bss);\n \n \t/*\n \t * If the P2P GO interface was dynamically added, then it is\n-@@ -7111,8 +7112,7 @@ static int wpa_driver_nl80211_stop_ap(vo\n- \tstruct wpa_driver_nl80211_data *drv = bss->drv;\n+@@ -7245,7 +7247,6 @@ static int wpa_driver_nl80211_stop_ap(vo\n \tif (!is_ap_interface(drv->nlmode))\n \t\treturn -1;\n--\twpa_driver_nl80211_del_beacon(drv);\n+ \twpa_driver_nl80211_del_beacon(bss);\n -\tbss->beacon_set = 0;\n-+\twpa_driver_nl80211_del_beacon(bss);\n \treturn 0;\n }\n \ndiff --git a/package/network/services/hostapd/patches/360-ctrl_iface_reload.patch b/package/network/services/hostapd/patches/360-ctrl_iface_reload.patch\nindex 83bec2a..043ddbf 100644\n--- a/package/network/services/hostapd/patches/360-ctrl_iface_reload.patch\n+++ b/package/network/services/hostapd/patches/360-ctrl_iface_reload.patch\n@@ -1,6 +1,6 @@\n --- a/hostapd/ctrl_iface.c\n +++ b/hostapd/ctrl_iface.c\n-@@ -55,6 +55,7 @@\n+@@ -56,6 +56,7 @@\n #include \"fst/fst_ctrl_iface.h\"\n #include \"config_file.h\"\n #include \"ctrl_iface.h\"\n@@ -8,7 +8,7 @@\n \n \n #define HOSTAPD_CLI_DUP_VALUE_MAX_LEN 256\n-@@ -73,6 +74,7 @@ static void hostapd_ctrl_iface_send(stru\n+@@ -74,6 +75,7 @@ static void hostapd_ctrl_iface_send(stru\n \t\t\t\t enum wpa_msg_type type,\n \t\t\t\t const char *buf, size_t len);\n \n@@ -16,7 +16,7 @@\n \n static int hostapd_ctrl_iface_attach(struct hostapd_data *hapd,\n \t\t\t\t struct sockaddr_storage *from,\n-@@ -124,6 +126,61 @@ static int hostapd_ctrl_iface_new_sta(st\n+@@ -125,6 +127,61 @@ static int hostapd_ctrl_iface_new_sta(st\n \treturn 0;\n }\n \n@@ -78,7 +78,7 @@\n \n #ifdef CONFIG_IEEE80211W\n #ifdef NEED_AP_MLME\n-@@ -2620,6 +2677,8 @@ static int hostapd_ctrl_iface_receive_pr\n+@@ -2607,6 +2664,8 @@ static int hostapd_ctrl_iface_receive_pr\n \t} else if (os_strncmp(buf, \"VENDOR \", 7) == 0) {\n \t\treply_len = hostapd_ctrl_iface_vendor(hapd, buf + 7, reply,\n \t\t\t\t\t\t reply_size);\ndiff --git a/package/network/services/hostapd/patches/370-ap_sta_support.patch b/package/network/services/hostapd/patches/370-ap_sta_support.patch\nindex 03819b3..a37b193 100644\n--- a/package/network/services/hostapd/patches/370-ap_sta_support.patch\n+++ b/package/network/services/hostapd/patches/370-ap_sta_support.patch\n@@ -1,6 +1,6 @@\n --- a/wpa_supplicant/wpa_supplicant_i.h\n +++ b/wpa_supplicant/wpa_supplicant_i.h\n-@@ -100,6 +100,11 @@ struct wpa_interface {\n+@@ -101,6 +101,11 @@ struct wpa_interface {\n \tconst char *ifname;\n \n \t/**\n@@ -12,7 +12,7 @@\n \t * bridge_ifname - Optional bridge interface name\n \t *\n \t * If the driver interface (ifname) is included in a Linux bridge\n-@@ -484,6 +489,8 @@ struct wpa_supplicant {\n+@@ -512,6 +517,8 @@ struct wpa_supplicant {\n #endif /* CONFIG_CTRL_IFACE_BINDER */\n \tchar bridge_ifname[16];\n \n@@ -34,7 +34,7 @@\n -include .config\n -include $(if $(MULTICALL),../hostapd/.config)\n \n-@@ -115,6 +119,8 @@ OBJS_c += ../src/utils/common.o\n+@@ -117,6 +121,8 @@ OBJS_c += ../src/utils/common.o\n OBJS_c += ../src/common/cli.o\n OBJS += wmm_ac.o\n \n@@ -45,9 +45,9 @@\n CONFIG_OS=win32\n --- a/wpa_supplicant/wpa_supplicant.c\n +++ b/wpa_supplicant/wpa_supplicant.c\n-@@ -112,6 +112,55 @@ const char *const wpa_supplicant_full_li\n- \"\\n\";\n- #endif /* CONFIG_NO_STDOUT_DEBUG */\n+@@ -118,6 +118,55 @@ const char *const wpa_supplicant_full_li\n+ static void wpa_bss_tmp_disallow_timeout(void *eloop_ctx, void *timeout_ctx);\n+ \n \n +static int hostapd_stop(struct wpa_supplicant *wpa_s)\n +{\n@@ -101,7 +101,7 @@\n /* Configure default/group WEP keys for static WEP */\n int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)\n {\n-@@ -819,8 +868,12 @@ void wpa_supplicant_set_state(struct wpa\n+@@ -883,8 +932,12 @@ void wpa_supplicant_set_state(struct wpa\n \t\twpas_p2p_completed(wpa_s);\n \n \t\tsme_sched_obss_scan(wpa_s, 1);\n@@ -114,7 +114,7 @@\n \t\twpa_s->new_connection = 1;\n \t\twpa_drv_set_operstate(wpa_s, 0);\n #ifndef IEEE8021X_EAPOL\n-@@ -4790,6 +4843,20 @@ static int wpa_supplicant_init_iface(str\n+@@ -5080,6 +5133,20 @@ static int wpa_supplicant_init_iface(str\n \t\t\t sizeof(wpa_s->bridge_ifname));\n \t}\n \n@@ -135,7 +135,7 @@\n \t/* RSNA Supplicant Key Management - INITIALIZE */\n \teapol_sm_notify_portEnabled(wpa_s->eapol, FALSE);\n \teapol_sm_notify_portValid(wpa_s->eapol, FALSE);\n-@@ -5083,6 +5150,11 @@ static void wpa_supplicant_deinit_iface(\n+@@ -5404,6 +5471,11 @@ static void wpa_supplicant_deinit_iface(\n \tif (terminate)\n \t\twpa_msg(wpa_s, MSG_INFO, WPA_EVENT_TERMINATING);\n \n@@ -157,7 +157,7 @@\n #include \"drivers/driver.h\"\n #include \"eap_peer/eap.h\"\n #include \"wpa_supplicant_i.h\"\n-@@ -290,6 +291,10 @@ static void calculate_update_time(const\n+@@ -290,6 +291,10 @@ void calculate_update_time(const struct\n static void wpa_bss_copy_res(struct wpa_bss *dst, struct wpa_scan_res *src,\n \t\t\t struct os_reltime *fetch_time)\n {\ndiff --git a/package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch b/package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch\nindex 1403fe0..330cf48 100644\n--- a/package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch\n+++ b/package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch\n@@ -12,7 +12,7 @@\n else\n --- a/hostapd/ctrl_iface.c\n +++ b/hostapd/ctrl_iface.c\n-@@ -2471,6 +2471,7 @@ static int hostapd_ctrl_iface_receive_pr\n+@@ -2458,6 +2458,7 @@ static int hostapd_ctrl_iface_receive_pr\n \t\t\t\t\t\t reply_size);\n \t} else if (os_strcmp(buf, \"STATUS-DRIVER\") == 0) {\n \t\treply_len = hostapd_drv_status(hapd, reply, reply_size);\n@@ -20,7 +20,7 @@\n \t} else if (os_strcmp(buf, \"MIB\") == 0) {\n \t\treply_len = ieee802_11_get_mib(hapd, reply, reply_size);\n \t\tif (reply_len >= 0) {\n-@@ -2512,6 +2513,7 @@ static int hostapd_ctrl_iface_receive_pr\n+@@ -2499,6 +2500,7 @@ static int hostapd_ctrl_iface_receive_pr\n \t} else if (os_strncmp(buf, \"STA-NEXT \", 9) == 0) {\n \t\treply_len = hostapd_ctrl_iface_sta_next(hapd, buf + 9, reply,\n \t\t\t\t\t\t\treply_size);\n@@ -30,8 +30,8 @@\n \t\t\treply_len = -1;\n --- a/wpa_supplicant/Makefile\n +++ b/wpa_supplicant/Makefile\n-@@ -891,6 +891,9 @@ ifdef CONFIG_MBO\n- OBJS += ../src/ap/mbo_ap.o\n+@@ -926,6 +926,9 @@ ifdef CONFIG_FILS\n+ OBJS += ../src/ap/fils_hlp.o\n endif\n ifdef CONFIG_CTRL_IFACE\n +ifdef CONFIG_CTRL_IFACE_MIB\n@@ -42,7 +42,7 @@\n \n --- a/wpa_supplicant/ctrl_iface.c\n +++ b/wpa_supplicant/ctrl_iface.c\n-@@ -1907,7 +1907,7 @@ static int wpa_supplicant_ctrl_iface_sta\n+@@ -2070,7 +2070,7 @@ static int wpa_supplicant_ctrl_iface_sta\n \t\t\tpos += ret;\n \t\t}\n \n@@ -51,7 +51,7 @@\n \t\tif (wpa_s->ap_iface) {\n \t\t\tpos += ap_ctrl_iface_wpa_get_status(wpa_s, pos,\n \t\t\t\t\t\t\t end - pos,\n-@@ -9032,6 +9032,7 @@ char * wpa_supplicant_ctrl_iface_process\n+@@ -9631,6 +9631,7 @@ char * wpa_supplicant_ctrl_iface_process\n \t\t\treply_len = -1;\n \t} else if (os_strncmp(buf, \"NOTE \", 5) == 0) {\n \t\twpa_printf(MSG_INFO, \"NOTE: %s\", buf + 5);\n@@ -59,7 +59,7 @@\n \t} else if (os_strcmp(buf, \"MIB\") == 0) {\n \t\treply_len = wpa_sm_get_mib(wpa_s->wpa, reply, reply_size);\n \t\tif (reply_len >= 0) {\n-@@ -9039,6 +9040,7 @@ char * wpa_supplicant_ctrl_iface_process\n+@@ -9638,6 +9639,7 @@ char * wpa_supplicant_ctrl_iface_process\n \t\t\t\t\t\t reply + reply_len,\n \t\t\t\t\t\t reply_size - reply_len);\n \t\t}\n@@ -67,7 +67,7 @@\n \t} else if (os_strncmp(buf, \"STATUS\", 6) == 0) {\n \t\treply_len = wpa_supplicant_ctrl_iface_status(\n \t\t\twpa_s, buf + 6, reply, reply_size);\n-@@ -9517,6 +9519,7 @@ char * wpa_supplicant_ctrl_iface_process\n+@@ -10124,6 +10126,7 @@ char * wpa_supplicant_ctrl_iface_process\n \t\treply_len = wpa_supplicant_ctrl_iface_bss(\n \t\t\twpa_s, buf + 4, reply, reply_size);\n #ifdef CONFIG_AP\n@@ -75,7 +75,7 @@\n \t} else if (os_strcmp(buf, \"STA-FIRST\") == 0) {\n \t\treply_len = ap_ctrl_iface_sta_first(wpa_s, reply, reply_size);\n \t} else if (os_strncmp(buf, \"STA \", 4) == 0) {\n-@@ -9525,12 +9528,15 @@ char * wpa_supplicant_ctrl_iface_process\n+@@ -10132,12 +10135,15 @@ char * wpa_supplicant_ctrl_iface_process\n \t} else if (os_strncmp(buf, \"STA-NEXT \", 9) == 0) {\n \t\treply_len = ap_ctrl_iface_sta_next(wpa_s, buf + 9, reply,\n \t\t\t\t\t\t reply_size);\n@@ -111,7 +111,7 @@\n static int p2p_manager_disconnect(struct hostapd_data *hapd, u16 stype,\n --- a/src/ap/ieee802_1x.c\n +++ b/src/ap/ieee802_1x.c\n-@@ -2490,6 +2490,7 @@ static const char * bool_txt(Boolean val\n+@@ -2492,6 +2492,7 @@ static const char * bool_txt(Boolean val\n \treturn val ? \"TRUE\" : \"FALSE\";\n }\n \n@@ -119,7 +119,7 @@\n \n int ieee802_1x_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen)\n {\n-@@ -2665,6 +2666,7 @@ int ieee802_1x_get_mib_sta(struct hostap\n+@@ -2667,6 +2668,7 @@ int ieee802_1x_get_mib_sta(struct hostap\n \treturn len;\n }\n \n@@ -129,7 +129,7 @@\n static void ieee802_1x_wnm_notif_send(void *eloop_ctx, void *timeout_ctx)\n --- a/src/ap/wpa_auth.c\n +++ b/src/ap/wpa_auth.c\n-@@ -3544,6 +3544,7 @@ static const char * wpa_bool_txt(int val\n+@@ -3741,6 +3741,7 @@ static const char * wpa_bool_txt(int val\n \treturn val ? \"TRUE\" : \"FALSE\";\n }\n \n@@ -137,7 +137,7 @@\n \n #define RSN_SUITE \"%02x-%02x-%02x-%d\"\n #define RSN_SUITE_ARG(s) \\\n-@@ -3688,7 +3689,7 @@ int wpa_get_mib_sta(struct wpa_state_mac\n+@@ -3885,7 +3886,7 @@ int wpa_get_mib_sta(struct wpa_state_mac\n \n \treturn len;\n }\n@@ -148,7 +148,7 @@\n {\n --- a/src/rsn_supp/wpa.c\n +++ b/src/rsn_supp/wpa.c\n-@@ -2252,6 +2252,8 @@ static u32 wpa_key_mgmt_suite(struct wpa\n+@@ -2283,6 +2283,8 @@ static u32 wpa_key_mgmt_suite(struct wpa\n }\n \n \n@@ -157,7 +157,7 @@\n #define RSN_SUITE \"%02x-%02x-%02x-%d\"\n #define RSN_SUITE_ARG(s) \\\n ((s) >> 24) & 0xff, ((s) >> 16) & 0xff, ((s) >> 8) & 0xff, (s) & 0xff\n-@@ -2335,6 +2337,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch\n+@@ -2366,6 +2368,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch\n \n \treturn (int) len;\n }\n@@ -167,7 +167,7 @@\n \n --- a/wpa_supplicant/ap.c\n +++ b/wpa_supplicant/ap.c\n-@@ -1119,7 +1119,7 @@ int wpas_ap_wps_nfc_report_handover(stru\n+@@ -1139,7 +1139,7 @@ int wpas_ap_wps_nfc_report_handover(stru\n #endif /* CONFIG_WPS */\n \n \ndiff --git a/package/network/services/hostapd/patches/390-wpa_ie_cap_workaround.patch b/package/network/services/hostapd/patches/390-wpa_ie_cap_workaround.patch\nindex 7f147ae..bdbae9b 100644\n--- a/package/network/services/hostapd/patches/390-wpa_ie_cap_workaround.patch\n+++ b/package/network/services/hostapd/patches/390-wpa_ie_cap_workaround.patch\n@@ -1,6 +1,6 @@\n --- a/src/common/wpa_common.c\n +++ b/src/common/wpa_common.c\n-@@ -1445,6 +1445,31 @@ u32 wpa_akm_to_suite(int akm)\n+@@ -1664,6 +1664,31 @@ u32 wpa_akm_to_suite(int akm)\n }\n \n \n@@ -32,7 +32,7 @@\n int wpa_compare_rsn_ie(int ft_initial_assoc,\n \t\t const u8 *ie1, size_t ie1len,\n \t\t const u8 *ie2, size_t ie2len)\n-@@ -1452,8 +1477,19 @@ int wpa_compare_rsn_ie(int ft_initial_as\n+@@ -1671,8 +1696,19 @@ int wpa_compare_rsn_ie(int ft_initial_as\n \tif (ie1 == NULL || ie2 == NULL)\n \t\treturn -1;\n \ndiff --git a/package/network/services/hostapd/patches/420-indicate-features.patch b/package/network/services/hostapd/patches/420-indicate-features.patch\nindex ac699f4..2b529ca 100644\n--- a/package/network/services/hostapd/patches/420-indicate-features.patch\n+++ b/package/network/services/hostapd/patches/420-indicate-features.patch\n@@ -8,7 +8,7 @@\n #include \"crypto/random.h\"\n #include \"crypto/tls.h\"\n #include \"common/version.h\"\n-@@ -675,7 +676,7 @@ int main(int argc, char *argv[])\n+@@ -678,7 +679,7 @@ int main(int argc, char *argv[])\n \twpa_supplicant_event = hostapd_wpa_event;\n \twpa_supplicant_event_global = hostapd_wpa_event_global;\n \tfor (;;) {\n@@ -17,7 +17,7 @@\n \t\tif (c < 0)\n \t\t\tbreak;\n \t\tswitch (c) {\n-@@ -712,6 +713,8 @@ int main(int argc, char *argv[])\n+@@ -715,6 +716,8 @@ int main(int argc, char *argv[])\n \t\t\tbreak;\n #endif /* CONFIG_DEBUG_LINUX_TRACING */\n \t\tcase 'v':\ndiff --git a/package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch b/package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch\nindex eba79d2..32cab7f 100644\n--- a/package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch\n+++ b/package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch\n@@ -1,6 +1,6 @@\n --- a/hostapd/hostapd_cli.c\n +++ b/hostapd/hostapd_cli.c\n-@@ -447,7 +447,6 @@ static int hostapd_cli_cmd_sa_query(stru\n+@@ -417,7 +417,6 @@ static int hostapd_cli_cmd_sa_query(stru\n #endif /* CONFIG_IEEE80211W */\n \n \n@@ -8,7 +8,7 @@\n static int hostapd_cli_cmd_wps_pin(struct wpa_ctrl *ctrl, int argc,\n \t\t\t\t char *argv[])\n {\n-@@ -673,7 +672,6 @@ static int hostapd_cli_cmd_wps_config(st\n+@@ -643,7 +642,6 @@ static int hostapd_cli_cmd_wps_config(st\n \t\t\t ssid_hex, argv[1]);\n \treturn wpa_ctrl_command(ctrl, buf);\n }\n@@ -16,19 +16,19 @@\n \n \n static int hostapd_cli_cmd_disassoc_imminent(struct wpa_ctrl *ctrl, int argc,\n-@@ -1367,7 +1365,6 @@ static const struct hostapd_cli_cmd host\n- \t{ \"sa_query\", hostapd_cli_cmd_sa_query, NULL,\n+@@ -1476,7 +1474,6 @@ static const struct hostapd_cli_cmd host\n+ \t{ \"sa_query\", hostapd_cli_cmd_sa_query, hostapd_complete_stations,\n \t \"<addr> = send SA Query to a station\" },\n #endif /* CONFIG_IEEE80211W */\n -#ifdef CONFIG_WPS\n \t{ \"wps_pin\", hostapd_cli_cmd_wps_pin, NULL,\n \t \"<uuid> <pin> [timeout] [addr] = add WPS Enrollee PIN\" },\n \t{ \"wps_check_pin\", hostapd_cli_cmd_wps_check_pin, NULL,\n-@@ -1392,7 +1389,6 @@ static const struct hostapd_cli_cmd host\n+@@ -1501,7 +1498,6 @@ static const struct hostapd_cli_cmd host\n \t \"<SSID> <auth> <encr> <key> = configure AP\" },\n \t{ \"wps_get_status\", hostapd_cli_cmd_wps_get_status, NULL,\n \t \"= show current WPS status\" },\n -#endif /* CONFIG_WPS */\n- \t{ \"disassoc_imminent\", hostapd_cli_cmd_disassoc_imminent, NULL, NULL },\n- \t{ \"ess_disassoc\", hostapd_cli_cmd_ess_disassoc, NULL, NULL },\n- \t{ \"bss_tm_req\", hostapd_cli_cmd_bss_tm_req, NULL, NULL },\n+ \t{ \"disassoc_imminent\", hostapd_cli_cmd_disassoc_imminent, NULL,\n+ \t \"= send Disassociation Imminent notification\" },\n+ \t{ \"ess_disassoc\", hostapd_cli_cmd_ess_disassoc, NULL,\ndiff --git a/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch b/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch\nindex 1aeec5d..8869852 100644\n--- a/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch\n+++ b/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch\n@@ -21,8 +21,8 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>\n +#include \"ap/sta_info.h\"\n #include \"common/defs.h\"\n #include \"common/ieee802_11_defs.h\"\n- #ifdef CONFIG_MACSEC\n-@@ -605,6 +606,9 @@ struct wpa_driver_associate_params {\n+ #include \"common/wpa_common.h\"\n+@@ -762,6 +763,9 @@ struct wpa_driver_associate_params {\n \t * responsible for selecting with which BSS to associate. */\n \tconst u8 *bssid;\n \n@@ -34,7 +34,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>\n \t *\n --- a/wpa_supplicant/config.c\n +++ b/wpa_supplicant/config.c\n-@@ -16,6 +16,7 @@\n+@@ -17,6 +17,7 @@\n #include \"eap_peer/eap.h\"\n #include \"p2p/p2p.h\"\n #include \"fst/fst.h\"\n@@ -42,7 +42,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>\n #include \"config.h\"\n \n \n-@@ -1891,6 +1892,97 @@ static char * wpa_config_write_mka_ckn(c\n+@@ -1985,6 +1986,97 @@ static char * wpa_config_write_mka_ckn(c\n #endif /* CONFIG_MACSEC */\n \n \n@@ -140,7 +140,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>\n /* Helper macros for network block parser */\n \n #ifdef OFFSET\n-@@ -2123,6 +2215,9 @@ static const struct parse_data ssid_fiel\n+@@ -2224,6 +2316,9 @@ static const struct parse_data ssid_fiel\n \t{ INT(ap_max_inactivity) },\n \t{ INT(dtim_period) },\n \t{ INT(beacon_int) },\n@@ -163,7 +163,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>\n \n \n #define DEFAULT_EAP_WORKAROUND ((unsigned int) -1)\n-@@ -719,6 +721,9 @@ struct wpa_ssid {\n+@@ -735,6 +737,9 @@ struct wpa_ssid {\n \t */\n \tvoid *parent_cred;\n \n@@ -175,7 +175,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>\n \t * macsec_policy - Determines the policy for MACsec secure session\n --- a/wpa_supplicant/wpa_supplicant.c\n +++ b/wpa_supplicant/wpa_supplicant.c\n-@@ -2561,6 +2561,13 @@ static void wpas_start_assoc_cb(struct w\n+@@ -2781,6 +2781,13 @@ static void wpas_start_assoc_cb(struct w\n \t\t\tparams.beacon_int = ssid->beacon_int;\n \t\telse\n \t\t\tparams.beacon_int = wpa_s->conf->beacon_int;\ndiff --git a/package/network/services/hostapd/patches/461-driver_nl80211-use-new-parameters-during-ibss-join.patch b/package/network/services/hostapd/patches/461-driver_nl80211-use-new-parameters-during-ibss-join.patch\nindex 6db6133..1182236 100644\n--- a/package/network/services/hostapd/patches/461-driver_nl80211-use-new-parameters-during-ibss-join.patch\n+++ b/package/network/services/hostapd/patches/461-driver_nl80211-use-new-parameters-during-ibss-join.patch\n@@ -10,7 +10,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>\n \n --- a/src/drivers/driver_nl80211.c\n +++ b/src/drivers/driver_nl80211.c\n-@@ -4962,7 +4962,7 @@ static int wpa_driver_nl80211_ibss(struc\n+@@ -5012,7 +5012,7 @@ static int wpa_driver_nl80211_ibss(struc\n \t\t\t\t struct wpa_driver_associate_params *params)\n {\n \tstruct nl_msg *msg;\n@@ -19,7 +19,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>\n \tint count = 0;\n \n \twpa_printf(MSG_DEBUG, \"nl80211: Join IBSS (ifindex=%d)\", drv->ifindex);\n-@@ -4989,6 +4989,37 @@ retry:\n+@@ -5039,6 +5039,37 @@ retry:\n \t nl80211_put_beacon_int(msg, params->beacon_int))\n \t\tgoto fail;\n \ndiff --git a/package/network/services/hostapd/patches/462-wpa_s-support-htmode-param.patch b/package/network/services/hostapd/patches/462-wpa_s-support-htmode-param.patch\nindex c4b48a9..d2e5eab 100644\n--- a/package/network/services/hostapd/patches/462-wpa_s-support-htmode-param.patch\n+++ b/package/network/services/hostapd/patches/462-wpa_s-support-htmode-param.patch\n@@ -16,7 +16,7 @@ Signed-off-by: Antonio Quartulli <ordex@autistici.org>\n \n --- a/src/drivers/driver.h\n +++ b/src/drivers/driver.h\n-@@ -608,6 +608,8 @@ struct wpa_driver_associate_params {\n+@@ -765,6 +765,8 @@ struct wpa_driver_associate_params {\n \n \tunsigned char rates[WLAN_SUPP_RATES_MAX];\n \tint mcast_rate;\n@@ -27,7 +27,7 @@ Signed-off-by: Antonio Quartulli <ordex@autistici.org>\n \t * bssid_hint - BSSID of a proposed AP\n --- a/src/drivers/driver_nl80211.c\n +++ b/src/drivers/driver_nl80211.c\n-@@ -5020,6 +5020,22 @@ retry:\n+@@ -5070,6 +5070,22 @@ retry:\n \t\tnla_put_u32(msg, NL80211_ATTR_MCAST_RATE, params->mcast_rate);\n \t}\n \n@@ -52,7 +52,7 @@ Signed-off-by: Antonio Quartulli <ordex@autistici.org>\n \t\tgoto fail;\n --- a/wpa_supplicant/config.c\n +++ b/wpa_supplicant/config.c\n-@@ -1923,6 +1923,71 @@ static char * wpa_config_write_mcast_rat\n+@@ -2017,6 +2017,71 @@ static char * wpa_config_write_mcast_rat\n }\n #endif /* NO_CONFIG_WRITE */\n \n@@ -124,7 +124,7 @@ Signed-off-by: Antonio Quartulli <ordex@autistici.org>\n static int wpa_config_parse_rates(const struct parse_data *data,\n \t\t\t\t struct wpa_ssid *ssid, int line,\n \t\t\t\t const char *value)\n-@@ -2218,6 +2283,7 @@ static const struct parse_data ssid_fiel\n+@@ -2319,6 +2384,7 @@ static const struct parse_data ssid_fiel\n \t{ INT_RANGE(fixed_freq, 0, 1) },\n \t{ FUNC(rates) },\n \t{ FUNC(mcast_rate) },\n@@ -134,7 +134,7 @@ Signed-off-by: Antonio Quartulli <ordex@autistici.org>\n \t{ INT_RANGE(macsec_integ_only, 0, 1) },\n --- a/wpa_supplicant/config_ssid.h\n +++ b/wpa_supplicant/config_ssid.h\n-@@ -723,6 +723,8 @@ struct wpa_ssid {\n+@@ -739,6 +739,8 @@ struct wpa_ssid {\n \n \tunsigned char rates[WLAN_SUPP_RATES_MAX];\n \tdouble mcast_rate;\n@@ -145,7 +145,7 @@ Signed-off-by: Antonio Quartulli <ordex@autistici.org>\n \t/**\n --- a/wpa_supplicant/wpa_supplicant.c\n +++ b/wpa_supplicant/wpa_supplicant.c\n-@@ -2568,6 +2568,8 @@ static void wpas_start_assoc_cb(struct w\n+@@ -2788,6 +2788,8 @@ static void wpas_start_assoc_cb(struct w\n \t\t\ti++;\n \t\t}\n \t\tparams.mcast_rate = ssid->mcast_rate;\ndiff --git a/package/network/services/hostapd/patches/470-survey_data_fallback.patch b/package/network/services/hostapd/patches/470-survey_data_fallback.patch\nindex 4e40a87..1c094be 100644\n--- a/package/network/services/hostapd/patches/470-survey_data_fallback.patch\n+++ b/package/network/services/hostapd/patches/470-survey_data_fallback.patch\n@@ -20,7 +20,7 @@\n \n \ttotal = survey->channel_time;\n \n-@@ -395,20 +389,19 @@ static int acs_usable_vht80_chan(struct\n+@@ -392,20 +386,19 @@ static int acs_usable_vht80_chan(struct\n static int acs_survey_is_sufficient(struct freq_survey *survey)\n {\n \tif (!(survey->filled & SURVEY_HAS_NF)) {\ndiff --git a/package/network/services/hostapd/patches/600-ubus_support.patch b/package/network/services/hostapd/patches/600-ubus_support.patch\nindex 35c2c13..c16b85f 100644\n--- a/package/network/services/hostapd/patches/600-ubus_support.patch\n+++ b/package/network/services/hostapd/patches/600-ubus_support.patch\n@@ -22,7 +22,7 @@\n \n struct wpa_ctrl_dst;\n struct radius_server_data;\n-@@ -119,6 +120,7 @@ struct hostapd_data {\n+@@ -122,6 +123,7 @@ struct hostapd_data {\n \tstruct hostapd_iface *iface;\n \tstruct hostapd_config *iconf;\n \tstruct hostapd_bss_config *conf;\n@@ -30,7 +30,7 @@\n \tint interface_added; /* virtual interface added for this BSS */\n \tunsigned int started:1;\n \tunsigned int disabled:1;\n-@@ -328,6 +330,8 @@ struct hostapd_iface {\n+@@ -370,6 +372,8 @@ struct hostapd_iface {\n \tstruct hostapd_config *conf;\n \tchar phy[16]; /* Name of the PHY (radio) */\n \n@@ -41,7 +41,7 @@\n \t\tHAPD_IFACE_DISABLED,\n --- a/src/ap/hostapd.c\n +++ b/src/ap/hostapd.c\n-@@ -302,6 +302,7 @@ static void hostapd_free_hapd_data(struc\n+@@ -309,6 +309,7 @@ static void hostapd_free_hapd_data(struc\n \thapd->started = 0;\n \n \twpa_printf(MSG_DEBUG, \"%s(%s)\", __func__, hapd->conf->iface);\n@@ -49,7 +49,7 @@\n \tiapp_deinit(hapd->iapp);\n \thapd->iapp = NULL;\n \taccounting_deinit(hapd);\n-@@ -1160,6 +1161,8 @@ static int hostapd_setup_bss(struct host\n+@@ -1186,6 +1187,8 @@ static int hostapd_setup_bss(struct host\n \tif (hapd->driver && hapd->driver->set_operstate)\n \t\thapd->driver->set_operstate(hapd->drv_priv, 1);\n \n@@ -58,7 +58,7 @@\n \treturn 0;\n }\n \n-@@ -1683,6 +1686,7 @@ static int hostapd_setup_interface_compl\n+@@ -1711,6 +1714,7 @@ static int hostapd_setup_interface_compl\n \tif (err)\n \t\tgoto fail;\n \n@@ -66,7 +66,7 @@\n \twpa_printf(MSG_DEBUG, \"Completing interface initialization\");\n \tif (iface->conf->channel) {\n #ifdef NEED_AP_MLME\n-@@ -1862,6 +1866,7 @@ dfs_offload:\n+@@ -1890,6 +1894,7 @@ dfs_offload:\n \n fail:\n \twpa_printf(MSG_ERROR, \"Interface initialization failed\");\n@@ -74,7 +74,7 @@\n \thostapd_set_state(iface, HAPD_IFACE_DISABLED);\n \twpa_msg(hapd->msg_ctx, MSG_INFO, AP_EVENT_DISABLED);\n #ifdef CONFIG_FST\n-@@ -2310,6 +2315,7 @@ void hostapd_interface_deinit_free(struc\n+@@ -2344,6 +2349,7 @@ void hostapd_interface_deinit_free(struc\n \t\t (unsigned int) iface->conf->num_bss);\n \tdriver = iface->bss[0]->driver;\n \tdrv_priv = iface->bss[0]->drv_priv;\n@@ -84,7 +84,7 @@\n \t\t __func__, driver, drv_priv);\n --- a/src/ap/ieee802_11.c\n +++ b/src/ap/ieee802_11.c\n-@@ -1293,7 +1293,8 @@ void ieee802_11_finish_fils_auth(struct\n+@@ -1587,7 +1587,8 @@ ieee802_11_set_radius_info(struct hostap\n \n \n static void handle_auth(struct hostapd_data *hapd,\n@@ -94,7 +94,7 @@\n {\n \tu16 auth_alg, auth_transaction, status_code;\n \tu16 resp = WLAN_STATUS_SUCCESS;\n-@@ -1309,6 +1310,11 @@ static void handle_auth(struct hostapd_d\n+@@ -1603,6 +1604,11 @@ static void handle_auth(struct hostapd_d\n \tchar *identity = NULL;\n \tchar *radius_cui = NULL;\n \tu16 seq_ctrl;\n@@ -104,24 +104,22 @@\n +\t\t.frame_info = fi,\n +\t};\n \n- \tos_memset(&vlan_id, 0, sizeof(vlan_id));\n- \n-@@ -1466,6 +1472,14 @@ static void handle_auth(struct hostapd_d\n+ \tif (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) {\n+ \t\twpa_printf(MSG_INFO, \"handle_auth - too short payload (len=%lu)\",\n+@@ -1757,6 +1763,12 @@ static void handle_auth(struct hostapd_d\n \t\tresp = WLAN_STATUS_UNSPECIFIED_FAILURE;\n \t\tgoto fail;\n \t}\n-+\n +\tif (hostapd_ubus_handle_event(hapd, &req)) {\n +\t\twpa_printf(MSG_DEBUG, \"Station \" MACSTR \" rejected by ubus handler.\\n\",\n-+\t\t MAC2STR(mgmt->sa));\n++\t\t\tMAC2STR(mgmt->sa));\n +\t\tresp = WLAN_STATUS_UNSPECIFIED_FAILURE;\n +\t\tgoto fail;\n +\t}\n-+\n- \tif (res == HOSTAPD_ACL_PENDING) {\n- \t\twpa_printf(MSG_DEBUG, \"Authentication frame from \" MACSTR\n- \t\t\t \" waiting for an external authentication\",\n-@@ -2391,7 +2405,7 @@ static u16 send_assoc_resp(struct hostap\n+ \tif (res == HOSTAPD_ACL_PENDING)\n+ \t\treturn;\n+ \n+@@ -2860,7 +2872,7 @@ void fils_hlp_timeout(void *eloop_ctx, v\n \n static void handle_assoc(struct hostapd_data *hapd,\n \t\t\t const struct ieee80211_mgmt *mgmt, size_t len,\n@@ -130,10 +128,10 @@\n {\n \tu16 capab_info, listen_interval, seq_ctrl, fc;\n \tu16 resp = WLAN_STATUS_SUCCESS, reply_res;\n-@@ -2399,6 +2413,11 @@ static void handle_assoc(struct hostapd_\n- \tint left, i;\n- \tstruct sta_info *sta;\n- \tu8 *tmp = NULL;\n+@@ -2874,6 +2886,11 @@ static void handle_assoc(struct hostapd_\n+ #ifdef CONFIG_FILS\n+ \tint delay_assoc = 0;\n+ #endif /* CONFIG_FILS */\n +\tstruct hostapd_ubus_request req = {\n +\t\t.type = HOSTAPD_UBUS_ASSOC_REQ,\n +\t\t.mgmt_frame = mgmt,\n@@ -142,7 +140,7 @@\n \n \tif (len < IEEE80211_HDRLEN + (reassoc ? sizeof(mgmt->u.reassoc_req) :\n \t\t\t\t sizeof(mgmt->u.assoc_req))) {\n-@@ -2518,6 +2537,13 @@ static void handle_assoc(struct hostapd_\n+@@ -3041,6 +3058,13 @@ static void handle_assoc(struct hostapd_\n \t}\n #endif /* CONFIG_MBO */\n \n@@ -156,7 +154,7 @@\n \t/*\n \t * sta->capability is used in check_assoc_ies() for RRM enabled\n \t * capability element.\n-@@ -2688,6 +2714,7 @@ static void handle_disassoc(struct hosta\n+@@ -3248,6 +3272,7 @@ static void handle_disassoc(struct hosta\n \twpa_printf(MSG_DEBUG, \"disassocation: STA=\" MACSTR \" reason_code=%d\",\n \t\t MAC2STR(mgmt->sa),\n \t\t le_to_host16(mgmt->u.disassoc.reason_code));\n@@ -164,7 +162,7 @@\n \n \tsta = ap_get_sta(hapd, mgmt->sa);\n \tif (sta == NULL) {\n-@@ -2742,6 +2769,8 @@ static void handle_deauth(struct hostapd\n+@@ -3313,6 +3338,8 @@ static void handle_deauth(struct hostapd\n \t\t\" reason_code=%d\",\n \t\tMAC2STR(mgmt->sa), le_to_host16(mgmt->u.deauth.reason_code));\n \n@@ -173,7 +171,7 @@\n \tsta = ap_get_sta(hapd, mgmt->sa);\n \tif (sta == NULL) {\n \t\twpa_msg(hapd->msg_ctx, MSG_DEBUG, \"Station \" MACSTR \" trying \"\n-@@ -3025,7 +3054,7 @@ int ieee802_11_mgmt(struct hostapd_data\n+@@ -3627,7 +3654,7 @@ int ieee802_11_mgmt(struct hostapd_data\n \n \n \tif (stype == WLAN_FC_STYPE_PROBE_REQ) {\n@@ -182,7 +180,7 @@\n \t\treturn 1;\n \t}\n \n-@@ -3043,17 +3072,17 @@ int ieee802_11_mgmt(struct hostapd_data\n+@@ -3647,17 +3674,17 @@ int ieee802_11_mgmt(struct hostapd_data\n \tswitch (stype) {\n \tcase WLAN_FC_STYPE_AUTH:\n \t\twpa_printf(MSG_DEBUG, \"mgmt::auth\");\n@@ -205,7 +203,7 @@\n \tcase WLAN_FC_STYPE_DISASSOC:\n --- a/src/ap/beacon.c\n +++ b/src/ap/beacon.c\n-@@ -702,7 +702,7 @@ void sta_track_claim_taxonomy_info(struc\n+@@ -716,7 +716,7 @@ void sta_track_claim_taxonomy_info(struc\n \n void handle_probe_req(struct hostapd_data *hapd,\n \t\t const struct ieee80211_mgmt *mgmt, size_t len,\n@@ -214,7 +212,7 @@\n {\n \tu8 *resp;\n \tstruct ieee802_11_elems elems;\n-@@ -711,9 +711,15 @@ void handle_probe_req(struct hostapd_dat\n+@@ -725,9 +725,15 @@ void handle_probe_req(struct hostapd_dat\n \tsize_t i, resp_len;\n \tint noack;\n \tenum ssid_match_result res;\n@@ -230,7 +228,7 @@\n \n \tif (len < IEEE80211_HDRLEN)\n \t\treturn;\n-@@ -880,6 +886,12 @@ void handle_probe_req(struct hostapd_dat\n+@@ -894,6 +900,12 @@ void handle_probe_req(struct hostapd_dat\n \t}\n #endif /* CONFIG_P2P */\n \n@@ -256,7 +254,7 @@\n int ieee802_11_update_beacons(struct hostapd_iface *iface);\n --- a/src/ap/drv_callbacks.c\n +++ b/src/ap/drv_callbacks.c\n-@@ -52,6 +52,10 @@ int hostapd_notif_assoc(struct hostapd_d\n+@@ -116,6 +116,10 @@ int hostapd_notif_assoc(struct hostapd_d\n \tu16 reason = WLAN_REASON_UNSPECIFIED;\n \tu16 status = WLAN_STATUS_SUCCESS;\n \tconst u8 *p2p_dev_addr = NULL;\n@@ -267,7 +265,7 @@\n \n \tif (addr == NULL) {\n \t\t/*\n-@@ -131,6 +135,12 @@ int hostapd_notif_assoc(struct hostapd_d\n+@@ -195,6 +199,12 @@ int hostapd_notif_assoc(struct hostapd_d\n \t\tgoto fail;\n \t}\n \n@@ -282,7 +280,7 @@\n \t\twpabuf_free(sta->p2p_ie);\n --- a/src/ap/sta_info.c\n +++ b/src/ap/sta_info.c\n-@@ -386,6 +386,7 @@ void ap_handle_timer(void *eloop_ctx, vo\n+@@ -404,6 +404,7 @@ void ap_handle_timer(void *eloop_ctx, vo\n \t\t\t HOSTAPD_LEVEL_INFO, \"deauthenticated due to \"\n \t\t\t \"local deauth request\");\n \t\tap_free_sta(hapd, sta);\n@@ -290,7 +288,7 @@\n \t\treturn;\n \t}\n \n-@@ -533,6 +534,7 @@ skip_poll:\n+@@ -551,6 +552,7 @@ skip_poll:\n \t\t\thapd, sta,\n \t\t\tWLAN_REASON_PREV_AUTH_NOT_VALID);\n \t\tap_free_sta(hapd, sta);\n@@ -300,7 +298,7 @@\n }\n --- a/src/ap/wpa_auth_glue.c\n +++ b/src/ap/wpa_auth_glue.c\n-@@ -159,6 +159,7 @@ static void hostapd_wpa_auth_psk_failure\n+@@ -173,6 +173,7 @@ static void hostapd_wpa_auth_psk_failure\n \tstruct hostapd_data *hapd = ctx;\n \twpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_POSSIBLE_PSK_MISMATCH MACSTR,\n \t\tMAC2STR(addr));\n", "prefixes": [ "LEDE-DEV" ] }