mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-31 02:17:58 +00:00 
			
		
		
		
	ucentral-event: add wired events
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
		| @@ -2,5 +2,6 @@ | ||||
| 	"ssh", | ||||
| 	"health","health.dns", "health.dhcp", "health.radius", "health.memory", | ||||
| 	"client", "client.join", "client.leave", "client.key-mismatch", | ||||
| 	"wifi", "wifi.start", "wifi.stop" | ||||
| 	"wifi", "wifi.start", "wifi.stop", | ||||
| 	"wired", "wired.carrier-up", "wired.carrier-down" | ||||
| ] | ||||
|   | ||||
| @@ -7,6 +7,14 @@ import * as libuci from 'uci'; | ||||
| import * as uloop from 'uloop'; | ||||
| import * as nl80211 from 'nl80211'; | ||||
| import * as rtnl from 'rtnl'; | ||||
| import * as fs from 'fs'; | ||||
|  | ||||
| let capab = {}; | ||||
| let capabfile = fs.open("/etc/ucentral/capabilities.json", "r"); | ||||
| if (capabfile) { | ||||
| 	capab = json(capabfile.read("all")); | ||||
| 	capabfile.close(); | ||||
| } | ||||
|  | ||||
| uloop.init(); | ||||
|  | ||||
| @@ -20,6 +28,7 @@ let log_subscriber; | ||||
| let ratelimit = false; | ||||
| let config; | ||||
| let wan_ports; | ||||
| let carrier = {}; | ||||
|  | ||||
| function config_load() { | ||||
| 	uci.load('event'); | ||||
| @@ -255,8 +264,27 @@ function nl_cb(msg) { | ||||
| 	event('client', 'leave',  payload); | ||||
| } | ||||
|  | ||||
| function ifname_lookup(prefix, ifname, list) { | ||||
| 	let idx = index(list, ifname); | ||||
| 	if (idx < 0) | ||||
| 		return; | ||||
| 	return prefix + (idx + 1); | ||||
| } | ||||
|  | ||||
| function rtnl_cb(msg) { | ||||
| 	printf('%.J\n', msg); | ||||
| 	if (!exists(msg.msg, "carrier")) | ||||
| 		return; | ||||
|  | ||||
| 	let name = ifname_lookup('LAN', msg.msg?.ifname, capab.network?.lan); | ||||
| 	if (!name) | ||||
| 		name = ifname_lookup('WAN', msg.msg?.ifname, capab.network?.wan); | ||||
| 	if (name) { | ||||
| 		let verb = msg.msg.carrier ? 'carrier-up' : 'carrier-down';	 | ||||
| 		if (carrier[name] == verb) | ||||
| 			return; | ||||
| 		carrier[name] = verb; | ||||
| 		event('wired', verb, { name }); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| let ubus_methods = { | ||||
|   | ||||
| @@ -81,7 +81,7 @@ | ||||
| 			"types": [ "ssh", "health", "wifi" ] | ||||
| 		}, | ||||
| 		"realtime": { | ||||
| 			"types": [ "client.join", "client.leave", "client.key-mismatch" ] | ||||
| 			"types": [ "client.join", "client.leave", "client.key-mismatch", "wired" ] | ||||
| 		}, | ||||
| 		"health": { | ||||
| 			"interval": 120 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 John Crispin
					John Crispin