Forráskód Böngészése

Add full UCI config integration

All config sections now load from UCI:
- general: enabled, check_interval, log_level, buffer_file, max_buffer
- server: url, token, reconnect_delay, ping_interval, timeout
- router: id, hostname
- wan: interface, device, monitor_dhcp, monitor_wan, monitor_ip_change
- events: send_dhcp, send_wan, send_uptime, send_version

Config file updated with all options.
Luis Rosales 2 hónapja
szülő
commit
cf50d7ce14

+ 15 - 1
package/files/etc/config/client2server

@@ -1,16 +1,30 @@
 config client2server 'general'
     option enabled '1'
     option check_interval '5'
+    option log_level 'info'
+    option buffer_file '/tmp/event_buffer'
+    option max_buffer '100'
 
 config server
     option url 'wss://your-server.com/ws'
     option token 'CHANGE_ME_SECRET_TOKEN'
     option reconnect_delay '5'
     option ping_interval '30'
+    option timeout '10'
 
 config router
     option id ''
+    option hostname ''
 
 config wan
     option interface 'wan'
-    option device 'eth0'
+    option device 'eth0'
+    option monitor_dhcp '1'
+    option monitor_wan '1'
+    option monitor_ip_change '1'
+
+config events
+    option send_dhcp '1'
+    option send_wan '1'
+    option send_uptime '0'
+    option send_version '1'

+ 43 - 5
package/src/client2server-unified.lua

@@ -10,25 +10,63 @@
 -- ============================================================================
 
 local cfg = {
+    -- General
+    enabled = true,
+    check_interval = 5,
+    log_level = "info",
+    buffer_file = "/tmp/event_buffer",
+    max_buffer = 100,
+    -- Server
     server_url = os.getenv("SERVER_URL") or "wss://your-server.com:3843",
     server_token = os.getenv("SERVER_TOKEN") or "secret-token",
+    reconnect_delay = 5,
+    ping_interval = 30,
+    timeout = 10,
+    -- Router
     router_id = os.getenv("ROUTER_ID") or "",
-    check_interval = 5,
+    hostname = "",
+    -- WAN
     wan_interface = "wan",
     wan_device = "eth0",
-    buffer_file = "/tmp/event_buffer",
-    pid_file = "/var/run/client2server.pid",
-    max_buffer = 100,
+    monitor_dhcp = true,
+    monitor_wan = true,
+    monitor_ip_change = true,
+    -- Events
+    send_dhcp = true,
+    send_wan = true,
+    send_uptime = false,
+    send_version = true,
 }
 
--- Load UCI config
+-- Load UCI config (all settings)
 pcall(function()
     local uci = require("luci.model.uci").cursor()
+    -- General
+    cfg.enabled = uci:get("client2server", "general", "enabled") or cfg.enabled
+    cfg.check_interval = tonumber(uci:get("client2server", "general", "check_interval")) or cfg.check_interval
+    cfg.log_level = uci:get("client2server", "general", "log_level") or cfg.log_level
+    cfg.buffer_file = uci:get("client2server", "general", "buffer_file") or cfg.buffer_file
+    cfg.max_buffer = tonumber(uci:get("client2server", "general", "max_buffer")) or cfg.max_buffer
+    -- Server
     cfg.server_url = uci:get("client2server", "server", "url") or cfg.server_url
     cfg.server_token = uci:get("client2server", "server", "token") or cfg.server_token
+    cfg.reconnect_delay = tonumber(uci:get("client2server", "server", "reconnect_delay")) or cfg.reconnect_delay
+    cfg.ping_interval = tonumber(uci:get("client2server", "server", "ping_interval")) or cfg.ping_interval
+    cfg.timeout = tonumber(uci:get("client2server", "server", "timeout")) or cfg.timeout
+    -- Router
     cfg.router_id = uci:get("client2server", "router", "id") or cfg.router_id
+    cfg.hostname = uci:get("client2server", "router", "hostname") or cfg.hostname
+    -- WAN
     cfg.wan_interface = uci:get("client2server", "wan", "interface") or cfg.wan_interface
     cfg.wan_device = uci:get("client2server", "wan", "device") or cfg.wan_device
+    cfg.monitor_dhcp = uci:get("client2server", "wan", "monitor_dhcp") or cfg.monitor_dhcp
+    cfg.monitor_wan = uci:get("client2server", "wan", "monitor_wan") or cfg.monitor_wan
+    cfg.monitor_ip_change = uci:get("client2server", "wan", "monitor_ip_change") or cfg.monitor_ip_change
+    -- Events
+    cfg.send_dhcp = uci:get("client2server", "events", "send_dhcp") or cfg.send_dhcp
+    cfg.send_wan = uci:get("client2server", "events", "send_wan") or cfg.send_wan
+    cfg.send_uptime = uci:get("client2server", "events", "send_uptime") or cfg.send_uptime
+    cfg.send_version = uci:get("client2server", "events", "send_version") or cfg.send_version
 end)
 
 if cfg.router_id == "" then