From bb47de9b8ed7140666f7be5485b0fdbbe566ef9f Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Wed, 19 Mar 2025 13:37:25 +0100 Subject: [PATCH 1/3] script: multiap: always get first network id --- src/script/multiap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/script/multiap b/src/script/multiap index 99545456c..5868d9861 100755 --- a/src/script/multiap +++ b/src/script/multiap @@ -52,7 +52,7 @@ get_network_id() { local ifname=$1 [ -n "$ifname" ] || return - network_id=$(wpa_cli -i $ifname list_n|tail -n 1 | awk '{print $1}') + network_id=$(wpa_cli -i $ifname list_n| sed '1d' | head -n 1 | awk '{print $1}') echo ${network_id} } -- GitLab From 999808ad701a2d98a69e96a61282008541ae0572 Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Wed, 19 Mar 2025 13:37:49 +0100 Subject: [PATCH 2/3] script: multiap: explicitly write and save supplicant config --- src/script/multiap | 71 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 63 insertions(+), 8 deletions(-) diff --git a/src/script/multiap b/src/script/multiap index 5868d9861..83ee22df8 100755 --- a/src/script/multiap +++ b/src/script/multiap @@ -64,6 +64,48 @@ get_type_by_section() { echo "$(type_to_multi_ap $type)" } +encryption_to_key_mgmt() { + enc=$1 + + case $enc in + sae) + echo "SAE" + ;; + sae-mixed) + echo "WPA-PSK SAE" + ;; + psk2|psk-mixed) + echo "WPA-PSK" + ;; + none) + echo "NONE" + ;; + esac +} + +encryption_to_ieee80211w() { + enc=$1 + + case $enc in + sae) + echo "2" + ;; + sae-mixed) + echo "1" + ;; + esac +} + +encryption_to_proto() { + enc=$1 + + case $enc in + *) + echo "RSN" + ;; + esac +} + setup_conf() { . /lib/multiap/map_genconfig @@ -837,16 +879,29 @@ bsta_to_wireless() { uci -q set wireless.${section}.bssid="$bssid" uci -q set wireless.${section}.default_disabled='0' - [ "$disabled" != "1" ] && return - - [ -n "$ifname" ] || return - network_id=$(get_network_id $ifname) - wpa_cli -i "$bsta" disconnect > /dev/null 2>&1 - wpa_cli -i "$bsta" disable_network $network_id > /dev/null 2>&1 + key_mgmt=$(encryption_to_key_mgmt $encryption) + ieee80211w=$(encryption_to_ieee80211w $encryption) + proto=$(encryption_to_proto $encryption) + + # explicitly apply config to wpa_supplicant if valid + if [ "$key_mgmt" != "" -a "$proto" != "" ]; then + wpa_cli -i "$bsta" set_n $network_id ssid \"$ssid\" + wpa_cli -i "$bsta" set_n $network_id psk \"$key\" + wpa_cli -i "$bsta" set_n $network_id key_mgmt "$key_mgmt" + wpa_cli -i "$bsta" set_n $network_id proto "$proto" + wpa_cli -i "$bsta" set_n $network_id ieee80211w "$ieee80211w" + [ "$bssid" != "" ] && wpa_cli -i "$bsta" set_n $network_id bssid "$bssid" + fi + + if [ "$disabled" != "1" ]; then + wpa_cli -i "$bsta" enable_n $network_id + else + wpa_cli -i "$bsta" disconnect > /dev/null 2>&1 + wpa_cli -i "$bsta" disable_network $network_id > /dev/null 2>&1 + echo 1 + fi wpa_cli -i "$bsta" save_config > /dev/null 2>&1 - - echo 1 } config_load wireless -- GitLab From dfed203fe85afbfa77af2d952fa909ae0b636dcc Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Wed, 19 Mar 2025 14:20:02 +0100 Subject: [PATCH 3/3] script: multiap: minor cleanup --- src/script/multiap | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/script/multiap b/src/script/multiap index 83ee22df8..72e2fc8fd 100755 --- a/src/script/multiap +++ b/src/script/multiap @@ -899,7 +899,6 @@ bsta_to_wireless() { else wpa_cli -i "$bsta" disconnect > /dev/null 2>&1 wpa_cli -i "$bsta" disable_network $network_id > /dev/null 2>&1 - echo 1 fi wpa_cli -i "$bsta" save_config > /dev/null 2>&1 } @@ -950,23 +949,9 @@ bsta_to_wireless() { fi } -# best=$(mapagent_find_lowest_prio_onboarded) -# -# [ -z "$best" ] && return -# -# band=$1 -# sec="" -# prio="" -# -# config_foreach mapagent_enable_best bsta $best -# uci commit mapagent config_load mapagent - - diff=$(config_foreach mapagent_bsta_to_wireless bsta) - -# [ "$diff" != "" ] && { - uci commit wireless -# } + config_foreach mapagent_bsta_to_wireless bsta + uci commit wireless } -- GitLab