fix(network-switch): improve WiFi SSID list handling

- Changed log file path from Networkswitch_debug.log to netswitch.log
- Updated WiFi SSID check to properly handle array values from settings.ini
- Modified is_allowed_wifi to accept array arguments instead of comma-separated strings
- Adjusted calls to is_allowed_wifi in ctr.inotify to pass array correctly
This commit is contained in:
taamarin
2025-08-21 13:04:16 +07:00
parent 28056d9358
commit 5378a141ee
3 changed files with 17 additions and 13 deletions

View File

@@ -10,7 +10,7 @@ export PATH="/data/adb/magisk:/data/adb/ksu/bin:/data/adb/ap/bin:$PATH:/data/dat
module_dir="/data/adb/modules/box_for_root"
base_dir="/data/adb/box"
variab_dir="${base_dir}/run/variab"
log_file="${base_dir}/run/Networkswitch_debug.log"
log_file="${base_dir}/run/netswitch.log"
log_file_path="/data/local/tmp/"
temp_log_file="${log_file_path}debug.log.tmp"
last_check_file="${variab_dir}/last_check_time"
@@ -131,8 +131,8 @@ check_module_service() {
else
if [ "$use_ssid_matching" = "true" ]; then
if [ "$use_wifi_list_mode" = "blacklist" ]; then
log_msg "Policy: WiFi blacklist mode, list: ${wifi_ssids_list}"
if is_allowed_wifi "$ssid" "$wifi_ssids_list"; then
log_msg "Policy: WiFi blacklist mode, list: ${wifi_ssids_list[*]}"
if is_allowed_wifi "$ssid" "${wifi_ssids_list[@]}"; then
log_msg "Result: ${ssid} is in blacklist"
if [ "$current_state" != "disabled" ]; then
"$iptables_script" disable
@@ -152,8 +152,8 @@ check_module_service() {
fi
fi
elif [ "$use_wifi_list_mode" = "whitelist" ]; then
log_msg "Policy: WiFi whitelist mode, list: ${wifi_ssids_list}"
if is_allowed_wifi "$ssid" "$wifi_ssids_list"; then
log_msg "Policy: WiFi whitelist mode, list: ${wifi_ssids_list[*]}"
if is_allowed_wifi "$ssid" "${wifi_ssids_list[@]}"; then
log_msg "Result: ${ssid} is in whitelist"
if [ "$current_state" != "enabled" ]; then
"$service_script" start

View File

@@ -23,12 +23,16 @@ is_wifi_connected() {
echo "not_wifi"
fi
}
# Definisi array di settings.ini
is_allowed_wifi() {
local ssid=$1
local allowed_ssids=$2
if echo " $allowed_ssids " | tr ',' ' ' | grep -q " $ssid "; then
return 0
else
return 1
fi
}
shift
local allowed_list=("$@")
for allowed in "${allowed_list[@]}"; do
if [ "$ssid" = "$allowed" ]; then
return 0
fi
done
return 1
}

View File

@@ -198,7 +198,7 @@ use_ssid_matching=false
use_wifi_list_mode="blacklist"
# Wi-Fi SSID list to match (multiple SSIDs separated by spaces or commas)
wifi_ssids_list="WiFi1 WiFi2"
wifi_ssids_list=("WiFi1" "WiFi-2" "WiFi 3")
# Enable inotify debug logging for network switching
inotify_log_enabled="true"