diff --git a/feeds/ucentral/radius-gw-proxy/src/main.c b/feeds/ucentral/radius-gw-proxy/src/main.c index 45ae2e14b..cdc4dff36 100644 --- a/feeds/ucentral/radius-gw-proxy/src/main.c +++ b/feeds/ucentral/radius-gw-proxy/src/main.c @@ -170,7 +170,7 @@ radius_parse(char *buf, int len, int port, enum socket_type type, int tx) len -= sizeof(*hdr); - while (len > 0) { + while (len > 1) { struct radius_tlv *tlv = (struct radius_tlv *)avp; if (len < tlv->len) { diff --git a/feeds/ucentral/ucentral-schema/Makefile b/feeds/ucentral/ucentral-schema/Makefile index 1b0f1a0b3..717e8fb70 100644 --- a/feeds/ucentral/ucentral-schema/Makefile +++ b/feeds/ucentral/ucentral-schema/Makefile @@ -4,10 +4,9 @@ PKG_NAME:=ucentral-schema PKG_RELEASE:=1 PKG_SOURCE_URL=https://github.com/Telecominfraproject/wlan-ucentral-schema.git -PKG_MIRROR_HASH:=19cc22cf95f6497e34baafad2dbace0d01754a3b839954098eadceba332c2930 PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2022-05-29 -PKG_SOURCE_VERSION:=c72603fe12b0326691a96574aa438519c4dcd01e +PKG_SOURCE_VERSION:=c0d84b4044d3d523c909ea46e430ec94d7868de0 PKG_MAINTAINER:=John Crispin PKG_LICENSE:=BSD-3-Clause diff --git a/feeds/wifi-ax/hostapd/files/hostapd.sh b/feeds/wifi-ax/hostapd/files/hostapd.sh index c308d1d2d..8362158cb 100644 --- a/feeds/wifi-ax/hostapd/files/hostapd.sh +++ b/feeds/wifi-ax/hostapd/files/hostapd.sh @@ -394,6 +394,8 @@ hostapd_common_add_bss_config() { config_add_boolean ratelimit config_add_string uci_section + + config_add_boolean dynamic_probe_resp } hostapd_set_vlan_file() { @@ -629,7 +631,7 @@ hostapd_set_bss_options() { airtime_bss_weight airtime_bss_limit airtime_sta_weight \ multicast_to_unicast_all proxy_arp per_sta_vif \ eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id \ - vendor_elements fils uci_section + vendor_elements fils uci_section dynamic_probe_resp set_default fils 0 set_default isolate 0 @@ -652,6 +654,7 @@ hostapd_set_bss_options() { set_default airtime_bss_weight 0 set_default airtime_bss_limit 0 set_default eap_server 0 + set_default dynamic_probe_resp 0 /usr/sbin/hostapd -vfils || fils=0 @@ -677,6 +680,7 @@ hostapd_set_bss_options() { append bss_conf "preamble=$short_preamble" "$N" append bss_conf "wmm_enabled=$wmm" "$N" append bss_conf "ignore_broadcast_ssid=$hidden" "$N" + append bss_conf "dynamic_probe_resp=$dynamic_probe_resp" "$N" append bss_conf "uapsd_advertisement_enabled=$uapsd" "$N" append bss_conf "utf8_ssid=$utf8_ssid" "$N" append bss_conf "multi_ap=$multi_ap" "$N" diff --git a/feeds/wifi-ax/hostapd/patches/999-probe-request.patch b/feeds/wifi-ax/hostapd/patches/999-probe-request.patch new file mode 100644 index 000000000..3b79338c2 --- /dev/null +++ b/feeds/wifi-ax/hostapd/patches/999-probe-request.patch @@ -0,0 +1,49 @@ +Index: hostapd-2021-02-20-59e9794c/hostapd/config_file.c +=================================================================== +--- hostapd-2021-02-20-59e9794c.orig/hostapd/config_file.c ++++ hostapd-2021-02-20-59e9794c/hostapd/config_file.c +@@ -3339,6 +3339,8 @@ static int hostapd_config_fill(struct ho + bss->ignore_broadcast_ssid = atoi(pos); + } else if (os_strcmp(buf, "no_probe_resp_if_max_sta") == 0) { + bss->no_probe_resp_if_max_sta = atoi(pos); ++ } else if (os_strcmp(buf, "dynamic_probe_resp") == 0) { ++ bss->dynamic_probe_resp = atoi(pos); + #ifdef CONFIG_WEP + } else if (os_strcmp(buf, "wep_default_key") == 0) { + bss->ssid.wep.idx = atoi(pos); +Index: hostapd-2021-02-20-59e9794c/src/ap/ap_config.h +=================================================================== +--- hostapd-2021-02-20-59e9794c.orig/src/ap/ap_config.h ++++ hostapd-2021-02-20-59e9794c/src/ap/ap_config.h +@@ -460,6 +460,7 @@ struct hostapd_bss_config { + int ap_max_inactivity; + int ignore_broadcast_ssid; + int no_probe_resp_if_max_sta; ++ int dynamic_probe_resp; + + int wmm_enabled; + int wmm_uapsd; +Index: hostapd-2021-02-20-59e9794c/src/ap/beacon.c +=================================================================== +--- hostapd-2021-02-20-59e9794c.orig/src/ap/beacon.c ++++ hostapd-2021-02-20-59e9794c/src/ap/beacon.c +@@ -920,7 +920,8 @@ void handle_probe_req(struct hostapd_dat + } + #endif /* CONFIG_P2P */ + +- if (hapd->conf->ignore_broadcast_ssid && elems.ssid_len == 0 && ++ if (!hapd->conf->dynamic_probe_resp && ++ hapd->conf->ignore_broadcast_ssid && elems.ssid_len == 0 && + elems.ssid_list_len == 0 && elems.short_ssid_list_len == 0) { + wpa_printf(MSG_MSGDUMP, "Probe Request from " MACSTR " for " + "broadcast SSID ignored", MAC2STR(mgmt->sa)); +@@ -967,7 +968,8 @@ void handle_probe_req(struct hostapd_dat + return; + } + +- if (hapd->conf->ignore_broadcast_ssid && res == WILDCARD_SSID_MATCH) { ++ if (!hapd->conf->dynamic_probe_resp && ++ hapd->conf->ignore_broadcast_ssid && res == WILDCARD_SSID_MATCH) { + wpa_printf(MSG_MSGDUMP, "Probe Request from " MACSTR " for " + "broadcast SSID ignored", MAC2STR(mgmt->sa)); + return; diff --git a/patches/wifi/0020-hostapd-add-uci-section.patch b/patches/wifi/0020-hostapd-add-uci-section.patch new file mode 100644 index 000000000..c900084a5 --- /dev/null +++ b/patches/wifi/0020-hostapd-add-uci-section.patch @@ -0,0 +1,103 @@ +From 518549798a9bdd7a62d324a9127a296cf3aa4a94 Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Wed, 16 Nov 2022 16:38:23 +0100 +Subject: [PATCH 20/21] hostapd: add uci-section + +Signed-off-by: John Crispin +--- + .../network/services/hostapd/files/hostapd.sh | 6 ++- + .../hostapd/patches/901-cfg-section.patch | 51 +++++++++++++++++++ + 2 files changed, 56 insertions(+), 1 deletion(-) + create mode 100644 package/network/services/hostapd/patches/901-cfg-section.patch + +diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh +index 3ac9e7b590..c308d1d2de 100644 +--- a/package/network/services/hostapd/files/hostapd.sh ++++ b/package/network/services/hostapd/files/hostapd.sh +@@ -392,6 +392,8 @@ hostapd_common_add_bss_config() { + config_add_string fils_dhcp + + config_add_boolean ratelimit ++ ++ config_add_string uci_section + } + + hostapd_set_vlan_file() { +@@ -627,7 +629,7 @@ hostapd_set_bss_options() { + airtime_bss_weight airtime_bss_limit airtime_sta_weight \ + multicast_to_unicast_all proxy_arp per_sta_vif \ + eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id \ +- vendor_elements fils ++ vendor_elements fils uci_section + + set_default fils 0 + set_default isolate 0 +@@ -1152,6 +1154,8 @@ hostapd_set_bss_options() { + append bss_conf "per_sta_vif=$per_sta_vif" "$N" + fi + ++ [ -n "$uci_section" ] && append bss_conf "uci_section=$uci_section" "$N" ++ + json_get_values opts hostapd_bss_options + for val in $opts; do + append bss_conf "$val" "$N" +diff --git a/package/network/services/hostapd/patches/901-cfg-section.patch b/package/network/services/hostapd/patches/901-cfg-section.patch +new file mode 100644 +index 0000000000..dcfdd658fe +--- /dev/null ++++ b/package/network/services/hostapd/patches/901-cfg-section.patch +@@ -0,0 +1,51 @@ ++Index: hostapd-2021-02-20-59e9794c/hostapd/config_file.c ++=================================================================== ++--- hostapd-2021-02-20-59e9794c.orig/hostapd/config_file.c +++++ hostapd-2021-02-20-59e9794c/hostapd/config_file.c ++@@ -2366,6 +2366,8 @@ static int hostapd_config_fill(struct ho ++ return 1; ++ } ++ conf->driver = driver; +++ } else if (os_strcmp(buf, "uci_section") == 0) { +++ bss->uci_section = os_strdup(pos); ++ } else if (os_strcmp(buf, "driver_params") == 0) { ++ os_free(conf->driver_params); ++ conf->driver_params = os_strdup(pos); ++Index: hostapd-2021-02-20-59e9794c/src/ap/ap_config.h ++=================================================================== ++--- hostapd-2021-02-20-59e9794c.orig/src/ap/ap_config.h +++++ hostapd-2021-02-20-59e9794c/src/ap/ap_config.h ++@@ -279,6 +279,7 @@ struct hostapd_bss_config { ++ char snoop_iface[IFNAMSIZ + 1]; ++ char vlan_bridge[IFNAMSIZ + 1]; ++ char wds_bridge[IFNAMSIZ + 1]; +++ char *uci_section; ++ ++ char *config_id; ++ ++Index: hostapd-2021-02-20-59e9794c/src/ap/ubus.c ++=================================================================== ++--- hostapd-2021-02-20-59e9794c.orig/src/ap/ubus.c +++++ hostapd-2021-02-20-59e9794c/src/ap/ubus.c ++@@ -467,6 +467,9 @@ hostapd_bss_get_status(struct ubus_conte ++ hapd->iface->cac_started ? hapd->iface->dfs_cac_ms / 1000 - now.sec : 0); ++ blobmsg_close_table(&b, dfs_table); ++ +++ if (hapd->conf->uci_section) +++ blobmsg_add_string(&b, "uci_section", hapd->conf->uci_section); +++ ++ ubus_send_reply(ctx, req, b.head); ++ ++ return 0; ++Index: hostapd-2021-02-20-59e9794c/src/ap/ap_config.c ++=================================================================== ++--- hostapd-2021-02-20-59e9794c.orig/src/ap/ap_config.c +++++ hostapd-2021-02-20-59e9794c/src/ap/ap_config.c ++@@ -785,6 +785,7 @@ void hostapd_config_free_bss(struct host ++ os_free(conf->radius_req_attr_sqlite); ++ os_free(conf->rsn_preauth_interfaces); ++ os_free(conf->ctrl_interface); +++ os_free(conf->uci_section); ++ os_free(conf->config_id); ++ os_free(conf->ca_cert); ++ os_free(conf->server_cert); +-- +2.25.1 + diff --git a/patches/wifi/0021-hostapd-add-dynamic_probe_resp.patch b/patches/wifi/0021-hostapd-add-dynamic_probe_resp.patch new file mode 100644 index 000000000..a7d5deeb7 --- /dev/null +++ b/patches/wifi/0021-hostapd-add-dynamic_probe_resp.patch @@ -0,0 +1,108 @@ +From 4688450129baef1b5e495256947075f992778a1f Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Wed, 16 Nov 2022 16:40:01 +0100 +Subject: [PATCH 21/21] hostapd: add dynamic_probe_resp + +Signed-off-by: John Crispin +--- + .../network/services/hostapd/files/hostapd.sh | 6 ++- + .../hostapd/patches/999-probe-request.patch | 49 +++++++++++++++++++ + 2 files changed, 54 insertions(+), 1 deletion(-) + create mode 100644 package/network/services/hostapd/patches/999-probe-request.patch + +diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh +index c308d1d2de..8362158cb0 100644 +--- a/package/network/services/hostapd/files/hostapd.sh ++++ b/package/network/services/hostapd/files/hostapd.sh +@@ -394,6 +394,8 @@ hostapd_common_add_bss_config() { + config_add_boolean ratelimit + + config_add_string uci_section ++ ++ config_add_boolean dynamic_probe_resp + } + + hostapd_set_vlan_file() { +@@ -629,7 +631,7 @@ hostapd_set_bss_options() { + airtime_bss_weight airtime_bss_limit airtime_sta_weight \ + multicast_to_unicast_all proxy_arp per_sta_vif \ + eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id \ +- vendor_elements fils uci_section ++ vendor_elements fils uci_section dynamic_probe_resp + + set_default fils 0 + set_default isolate 0 +@@ -652,6 +654,7 @@ hostapd_set_bss_options() { + set_default airtime_bss_weight 0 + set_default airtime_bss_limit 0 + set_default eap_server 0 ++ set_default dynamic_probe_resp 0 + + /usr/sbin/hostapd -vfils || fils=0 + +@@ -677,6 +680,7 @@ hostapd_set_bss_options() { + append bss_conf "preamble=$short_preamble" "$N" + append bss_conf "wmm_enabled=$wmm" "$N" + append bss_conf "ignore_broadcast_ssid=$hidden" "$N" ++ append bss_conf "dynamic_probe_resp=$dynamic_probe_resp" "$N" + append bss_conf "uapsd_advertisement_enabled=$uapsd" "$N" + append bss_conf "utf8_ssid=$utf8_ssid" "$N" + append bss_conf "multi_ap=$multi_ap" "$N" +diff --git a/package/network/services/hostapd/patches/999-probe-request.patch b/package/network/services/hostapd/patches/999-probe-request.patch +new file mode 100644 +index 0000000000..3b79338c2f +--- /dev/null ++++ b/package/network/services/hostapd/patches/999-probe-request.patch +@@ -0,0 +1,49 @@ ++Index: hostapd-2021-02-20-59e9794c/hostapd/config_file.c ++=================================================================== ++--- hostapd-2021-02-20-59e9794c.orig/hostapd/config_file.c +++++ hostapd-2021-02-20-59e9794c/hostapd/config_file.c ++@@ -3339,6 +3339,8 @@ static int hostapd_config_fill(struct ho ++ bss->ignore_broadcast_ssid = atoi(pos); ++ } else if (os_strcmp(buf, "no_probe_resp_if_max_sta") == 0) { ++ bss->no_probe_resp_if_max_sta = atoi(pos); +++ } else if (os_strcmp(buf, "dynamic_probe_resp") == 0) { +++ bss->dynamic_probe_resp = atoi(pos); ++ #ifdef CONFIG_WEP ++ } else if (os_strcmp(buf, "wep_default_key") == 0) { ++ bss->ssid.wep.idx = atoi(pos); ++Index: hostapd-2021-02-20-59e9794c/src/ap/ap_config.h ++=================================================================== ++--- hostapd-2021-02-20-59e9794c.orig/src/ap/ap_config.h +++++ hostapd-2021-02-20-59e9794c/src/ap/ap_config.h ++@@ -460,6 +460,7 @@ struct hostapd_bss_config { ++ int ap_max_inactivity; ++ int ignore_broadcast_ssid; ++ int no_probe_resp_if_max_sta; +++ int dynamic_probe_resp; ++ ++ int wmm_enabled; ++ int wmm_uapsd; ++Index: hostapd-2021-02-20-59e9794c/src/ap/beacon.c ++=================================================================== ++--- hostapd-2021-02-20-59e9794c.orig/src/ap/beacon.c +++++ hostapd-2021-02-20-59e9794c/src/ap/beacon.c ++@@ -920,7 +920,8 @@ void handle_probe_req(struct hostapd_dat ++ } ++ #endif /* CONFIG_P2P */ ++ ++- if (hapd->conf->ignore_broadcast_ssid && elems.ssid_len == 0 && +++ if (!hapd->conf->dynamic_probe_resp && +++ hapd->conf->ignore_broadcast_ssid && elems.ssid_len == 0 && ++ elems.ssid_list_len == 0 && elems.short_ssid_list_len == 0) { ++ wpa_printf(MSG_MSGDUMP, "Probe Request from " MACSTR " for " ++ "broadcast SSID ignored", MAC2STR(mgmt->sa)); ++@@ -967,7 +968,8 @@ void handle_probe_req(struct hostapd_dat ++ return; ++ } ++ ++- if (hapd->conf->ignore_broadcast_ssid && res == WILDCARD_SSID_MATCH) { +++ if (!hapd->conf->dynamic_probe_resp && +++ hapd->conf->ignore_broadcast_ssid && res == WILDCARD_SSID_MATCH) { ++ wpa_printf(MSG_MSGDUMP, "Probe Request from " MACSTR " for " ++ "broadcast SSID ignored", MAC2STR(mgmt->sa)); ++ return; +-- +2.25.1 +