#!/bin/sh /etc/rc.common # Copyright (c) 2026 Luis Rosales - MIT License # # Starts the Lua event forwarder and exports UCI config to the environment # so that /etc/hotplug.d/{wireless,dhcp}/* scripts can read SERVER_URL, etc. START=95 STOP=10 NAME=client2server PIDFILE="/var/run/${NAME}.pid" ENV_FILE="/var/run/${NAME}.env" start() { logger -t "$NAME" -p user.info "Starting $NAME..." # Check config if [ ! -f /etc/config/client2server ]; then logger -t "$NAME" -p user.err "Config not found" exit 1 fi # Check if enabled local enabled enabled=$(uci get client2server.general.enabled 2>/dev/null) if [ "$enabled" = "0" ]; then logger -t "$NAME" -p user.info "Disabled in config" exit 0 fi # Read UCI into environment file (so hotplug scripts can inherit it) local server_url token router_id server_url=$(uci get client2server.server.url 2>/dev/null) token=$(uci get client2server.server.token 2>/dev/null) router_id=$(uci get client2server.router.id 2>/dev/null) if [ -z "$router_id" ]; then router_id=$(cat /proc/sys/kernel/hostname 2>/dev/null || echo unknown) fi cat > "$ENV_FILE" </dev/null # Start the Lua script with UCI env exported (and load env file for any # child processes that need it - e.g. hotplug scripts forked by netifd) logger -t "$NAME" -p user.info "router_id=$router_id url=$server_url" # shellcheck disable=SC1090 set -a . "$ENV_FILE" set +a lua /usr/sbin/client2server-unified.lua & echo $! > $PIDFILE logger -t "$NAME" -p user.info "Started with PID $(cat $PIDFILE)" } stop() { if [ -f $PIDFILE ]; then local pid pid=$(cat $PIDFILE) kill -TERM "$pid" 2>/dev/null rm -f $PIDFILE fi rm -f "$ENV_FILE" 2>/dev/null logger -t "$NAME" -p user.info "Stopped" } reload() { stop sleep 1 start }