OpenWrt
create state dir
export UCI env
launch
write pid
spool NDJSON
touch wake
poll wake file
WS
WS frame
read state
poll dnsmasq leases
/etc/init.d/client2server
State dir
/var/run/client2server/
{buffer,pid,env,wake}
client2server-unified.lua
hotplug-lib.sh
/usr/share/client2server/
hotplug.d/wireless/01-wifi
hotplug.d/dhcp/02-dhcp
/etc/config/client2server
UCI store
WebSocket client
(luasocket)
Command executor
Go server :3843
/sys/class/net/*
/usr/bin/ubus
/tmp/dhcp.leases