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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user