From 017320ead3a21415ab876012d1a2844e783c071f Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Thu, 21 May 2020 10:15:46 +0100 Subject: hostapd: bring back mesh patches Bring back 802.11s mesh features to the level previously available before the recent hostapd version bump. This is mostly to support use of 802.11s on DFS channels, but also making mesh forwarding configurable which is crucial for use of 802.11s MAC with other routing protocols, such as batman-adv, on top. While at it, fix new compiler warning by adapting 700-wifi-reload.patch to upstream changes, now building without any warnings again. Fixes: 0a3ec87a66 ("hostapd: update to latest Git hostap_2_9-1238-gdd2daf0848ed") Signed-off-by: Daniel Golle --- .../hostapd/patches/600-ubus_support.patch | 46 +++++++++++----------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'package/network/services/hostapd/patches/600-ubus_support.patch') diff --git a/package/network/services/hostapd/patches/600-ubus_support.patch b/package/network/services/hostapd/patches/600-ubus_support.patch index c4cf2a4cde..23bdaa7a1b 100644 --- a/package/network/services/hostapd/patches/600-ubus_support.patch +++ b/package/network/services/hostapd/patches/600-ubus_support.patch @@ -39,7 +39,7 @@ int interface_added; /* virtual interface added for this BSS */ unsigned int started:1; unsigned int disabled:1; -@@ -588,6 +590,7 @@ hostapd_alloc_bss_data(struct hostapd_if +@@ -603,6 +605,7 @@ hostapd_alloc_bss_data(struct hostapd_if struct hostapd_bss_config *bss); int hostapd_setup_interface(struct hostapd_iface *iface); int hostapd_setup_interface_complete(struct hostapd_iface *iface, int err); @@ -49,7 +49,7 @@ struct hostapd_iface * hostapd_alloc_iface(void); --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -391,6 +391,7 @@ static void hostapd_free_hapd_data(struc +@@ -395,6 +395,7 @@ static void hostapd_free_hapd_data(struc hapd->beacon_set_done = 0; wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface); @@ -57,7 +57,7 @@ accounting_deinit(hapd); hostapd_deinit_wpa(hapd); vlan_deinit(hapd); -@@ -1392,6 +1393,8 @@ static int hostapd_setup_bss(struct host +@@ -1413,6 +1414,8 @@ static int hostapd_setup_bss(struct host if (hapd->driver && hapd->driver->set_operstate) hapd->driver->set_operstate(hapd->drv_priv, 1); @@ -66,7 +66,7 @@ return 0; } -@@ -1967,6 +1970,7 @@ static int hostapd_setup_interface_compl +@@ -1988,6 +1991,7 @@ static int hostapd_setup_interface_compl if (err) goto fail; @@ -74,7 +74,7 @@ wpa_printf(MSG_DEBUG, "Completing interface initialization"); if (iface->freq) { #ifdef NEED_AP_MLME -@@ -2157,6 +2161,7 @@ dfs_offload: +@@ -2185,6 +2189,7 @@ dfs_offload: fail: wpa_printf(MSG_ERROR, "Interface initialization failed"); @@ -82,7 +82,7 @@ hostapd_set_state(iface, HAPD_IFACE_DISABLED); wpa_msg(hapd->msg_ctx, MSG_INFO, AP_EVENT_DISABLED); #ifdef CONFIG_FST -@@ -2630,6 +2635,7 @@ void hostapd_interface_deinit_free(struc +@@ -2658,6 +2663,7 @@ void hostapd_interface_deinit_free(struc (unsigned int) iface->conf->num_bss); driver = iface->bss[0]->driver; drv_priv = iface->bss[0]->drv_priv; @@ -126,7 +126,7 @@ if (res == HOSTAPD_ACL_PENDING) return; -@@ -4078,7 +4090,7 @@ static void handle_assoc(struct hostapd_ +@@ -4087,7 +4099,7 @@ static void handle_assoc(struct hostapd_ int resp = WLAN_STATUS_SUCCESS; u16 reply_res; const u8 *pos; @@ -135,7 +135,7 @@ struct sta_info *sta; u8 *tmp = NULL; #ifdef CONFIG_FILS -@@ -4291,6 +4303,11 @@ static void handle_assoc(struct hostapd_ +@@ -4300,6 +4312,11 @@ static void handle_assoc(struct hostapd_ left = res; } #endif /* CONFIG_FILS */ @@ -147,7 +147,7 @@ /* followed by SSID and Supported rates; and HT capabilities if 802.11n * is used */ -@@ -4455,6 +4472,14 @@ static void handle_assoc(struct hostapd_ +@@ -4464,6 +4481,14 @@ static void handle_assoc(struct hostapd_ pos, left, rssi, omit_rsnxe); os_free(tmp); @@ -162,7 +162,7 @@ /* * Remove the station in case tranmission of a success response fails * (the STA was added associated to the driver) or if the station was -@@ -4482,6 +4507,7 @@ static void handle_disassoc(struct hosta +@@ -4491,6 +4516,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)); @@ -170,7 +170,7 @@ sta = ap_get_sta(hapd, mgmt->sa); if (sta == NULL) { -@@ -4548,6 +4574,8 @@ static void handle_deauth(struct hostapd +@@ -4557,6 +4583,8 @@ static void handle_deauth(struct hostapd " reason_code=%d", MAC2STR(mgmt->sa), le_to_host16(mgmt->u.deauth.reason_code)); @@ -181,7 +181,7 @@ wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR " trying " --- a/src/ap/beacon.c +++ b/src/ap/beacon.c -@@ -810,6 +810,12 @@ void handle_probe_req(struct hostapd_dat +@@ -814,6 +814,12 @@ void handle_probe_req(struct hostapd_dat u16 csa_offs[2]; size_t csa_offs_len; struct radius_sta rad_info; @@ -194,7 +194,7 @@ if (len < IEEE80211_HDRLEN) return; -@@ -992,6 +998,12 @@ void handle_probe_req(struct hostapd_dat +@@ -996,6 +1002,12 @@ void handle_probe_req(struct hostapd_dat } #endif /* CONFIG_P2P */ @@ -235,7 +235,7 @@ wpabuf_free(sta->p2p_ie); --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -423,6 +423,7 @@ void ap_handle_timer(void *eloop_ctx, vo +@@ -424,6 +424,7 @@ void ap_handle_timer(void *eloop_ctx, vo HOSTAPD_LEVEL_INFO, "deauthenticated due to " "local deauth request"); ap_free_sta(hapd, sta); @@ -243,7 +243,7 @@ return; } -@@ -578,6 +579,7 @@ skip_poll: +@@ -579,6 +580,7 @@ skip_poll: hapd, sta, WLAN_REASON_PREV_AUTH_NOT_VALID); ap_free_sta(hapd, sta); @@ -251,7 +251,7 @@ break; } } -@@ -1293,6 +1295,7 @@ void ap_sta_set_authorized(struct hostap +@@ -1294,6 +1296,7 @@ void ap_sta_set_authorized(struct hostap buf, ip_addr, keyid_buf); } else { wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_DISCONNECTED "%s", buf); @@ -284,7 +284,7 @@ ifdef CONFIG_CODE_COVERAGE CFLAGS += -O0 -fprofile-arcs -ftest-coverage LIBS += -lgcov -@@ -877,6 +883,9 @@ OBJS += ../src/pae/ieee802_1x_secy_ops.o +@@ -883,6 +889,9 @@ OBJS += ../src/pae/ieee802_1x_secy_ops.o ifdef CONFIG_AP OBJS += ../src/ap/wpa_auth_kay.o endif @@ -296,7 +296,7 @@ ifdef CONFIG_IEEE8021X_EAPOL --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -6771,6 +6771,8 @@ struct wpa_supplicant * wpa_supplicant_a +@@ -6793,6 +6793,8 @@ struct wpa_supplicant * wpa_supplicant_a } #endif /* CONFIG_P2P */ @@ -305,7 +305,7 @@ return wpa_s; } -@@ -6797,6 +6799,8 @@ int wpa_supplicant_remove_iface(struct w +@@ -6819,6 +6821,8 @@ int wpa_supplicant_remove_iface(struct w struct wpa_supplicant *parent = wpa_s->parent; #endif /* CONFIG_MESH */ @@ -314,7 +314,7 @@ /* Remove interface from the global list of interfaces */ prev = global->ifaces; if (prev == wpa_s) { -@@ -7100,8 +7104,12 @@ int wpa_supplicant_run(struct wpa_global +@@ -7122,8 +7126,12 @@ int wpa_supplicant_run(struct wpa_global eloop_register_signal_terminate(wpa_supplicant_terminate, global); eloop_register_signal_reconfig(wpa_supplicant_reconfig, global); @@ -364,7 +364,7 @@ #ifndef WPS_PIN_SCAN_IGNORE_SEL_REG -@@ -388,6 +389,8 @@ static int wpa_supplicant_wps_cred(void +@@ -392,6 +393,8 @@ static int wpa_supplicant_wps_cred(void wpa_hexdump_key(MSG_DEBUG, "WPS: Received Credential attribute", cred->cred_attr, cred->cred_attr_len); @@ -375,7 +375,7 @@ --- a/hostapd/main.c +++ b/hostapd/main.c -@@ -892,6 +892,7 @@ int main(int argc, char *argv[]) +@@ -896,6 +896,7 @@ int main(int argc, char *argv[]) } hostapd_global_ctrl_iface_init(&interfaces); @@ -383,7 +383,7 @@ if (hostapd_global_run(&interfaces, daemonize, pid_file)) { wpa_printf(MSG_ERROR, "Failed to start eloop"); -@@ -901,6 +902,7 @@ int main(int argc, char *argv[]) +@@ -905,6 +906,7 @@ int main(int argc, char *argv[]) ret = 0; out: -- cgit v1.2.3