wifi-scripts: add support for passing wifi-device settings via procd
Allows either overriding individual device settings, or passing complete devices Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		| @@ -183,6 +183,41 @@ function config_init(uci) | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	let udata = ubus.call({ | 	let udata = ubus.call({ | ||||||
|  | 		object: "service", | ||||||
|  | 		method: "get_data", | ||||||
|  | 		data: { | ||||||
|  | 			type: "wifi-device" | ||||||
|  | 		}, | ||||||
|  | 	}); | ||||||
|  | 	for (let svcname, svc in udata) { | ||||||
|  | 		for (let typename, data in svc) { | ||||||
|  | 			for (let radio, config in data) { | ||||||
|  | 				if (type(config) != "object") | ||||||
|  | 					continue; | ||||||
|  |  | ||||||
|  | 				let dev = devices[radio]; | ||||||
|  | 				if (dev) { | ||||||
|  | 					dev.config = { ...dev.config, ...config }; | ||||||
|  | 					continue; | ||||||
|  | 				} | ||||||
|  |  | ||||||
|  | 				let handler = wireless.handlers[config.type]; | ||||||
|  | 				if (!handler) | ||||||
|  | 					continue; | ||||||
|  |  | ||||||
|  | 				dev = devices[radio] = { | ||||||
|  | 					name, | ||||||
|  | 					config, | ||||||
|  |  | ||||||
|  | 					vif: [], | ||||||
|  | 				}; | ||||||
|  | 				handlers[radio] = handler; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	udata = ubus.call({ | ||||||
| 		object: "service", | 		object: "service", | ||||||
| 		method: "get_data", | 		method: "get_data", | ||||||
| 		data: { | 		data: { | ||||||
| @@ -193,6 +228,9 @@ function config_init(uci) | |||||||
| 	for (let svcname, svc in udata) { | 	for (let svcname, svc in udata) { | ||||||
| 		for (let typename, data in svc) { | 		for (let typename, data in svc) { | ||||||
| 			for (let radio, vifs in data) { | 			for (let radio, vifs in data) { | ||||||
|  | 				if (type(vifs) != "object") | ||||||
|  | 					continue; | ||||||
|  |  | ||||||
| 				for (let name, vif in vifs) { | 				for (let name, vif in vifs) { | ||||||
| 					let devs = vif.device; | 					let devs = vif.device; | ||||||
| 					if (type(devs) != "array") | 					if (type(devs) != "array") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau