#!/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 }