mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-10-29 09:32:34 +00:00
Added check when parsing ssid info retrieved from iwinfo. Program will exit if expected interface count and iwinfo entry count mismatch. Fixes: WIFI-14564 Signed-off-by: alex18_huang <alex18_huang@accton.com>
77 lines
1.5 KiB
Bash
Executable File
77 lines
1.5 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
|
|
USE_PROCD=1
|
|
|
|
START=95
|
|
STOP=10
|
|
|
|
SERVICE_NAME="dhcpinject"
|
|
PROG=/usr/bin/udhcpinject
|
|
|
|
start_service() {
|
|
local ssids=""
|
|
local ports=""
|
|
local ifaces=""
|
|
|
|
# Function to process each ssid
|
|
append_ssid() {
|
|
local value="$1"
|
|
if [ -n "$ssids" ]; then
|
|
ssids="$ssids,$value"
|
|
else
|
|
ssids="$value"
|
|
fi
|
|
}
|
|
|
|
append_port() {
|
|
local value="$1"
|
|
if [ -n "$ports" ]; then
|
|
ports="$ports,$value"
|
|
else
|
|
ports="$value"
|
|
fi
|
|
}
|
|
|
|
# Load the dhcpinject config
|
|
config_load dhcpinject
|
|
|
|
# Get the list of SSIDs
|
|
config_list_foreach ssids ssid append_ssid
|
|
|
|
# Get the list of ports
|
|
config_list_foreach uplink port append_port
|
|
|
|
# Get the iface_count
|
|
config_get ifaces dhcpinject iface_count
|
|
|
|
# Fallback to eth0 if no ports are specified
|
|
if [ -z "$ports" ]; then
|
|
ports="eth0"
|
|
fi
|
|
|
|
# Optional: Log or echo for debugging
|
|
logger -t dhcp_inject "Generated SSIDs=$ssids, Uplink=$ports, IFACEs=$ifaces"
|
|
|
|
procd_open_instance "$SERVICE_NAME"
|
|
procd_set_param command $PROG
|
|
procd_set_param env SSIDs="$ssids" PORTs="$ports" IFACEs="$ifaces"
|
|
procd_set_param respawn 3600 10 10
|
|
procd_set_param file /etc/config/dhcpinject
|
|
procd_set_param reload_signal SIGHUP
|
|
procd_close_instance
|
|
}
|
|
|
|
stop_service() {
|
|
procd_kill $SERVICE_NAME
|
|
}
|
|
|
|
reload_service() {
|
|
procd_send_signal $SERVICE_NAME
|
|
}
|
|
|
|
restart_service() {
|
|
stop
|
|
sleep 1
|
|
start
|
|
}
|