[PATCH v2] ufpd: import unetmsg.client conditionally

Christian Korber ck at dev.tdt.de
Wed Dec 3 06:38:10 PST 2025


unetmsg depends on ucode functions (acl) that are not in openwrt-23.05.
To make it possible to use ufp in that branch, this commit tests
if unetmsg is installed on the target.

Changes in v2:
Patch missed '--' at the and and was corrupt.

Signed-off-by: Christian Korber <ck at dev.tdt.de>
---
 ufpd | 46 +++++++++++++++++++++++++++++-----------------
 1 file changed, 29 insertions(+), 17 deletions(-)

diff --git a/ufpd b/ufpd
index c41ab8c..2068f66 100755
--- a/ufpd
+++ b/ufpd
@@ -2,14 +2,22 @@
 'use strict';
 import * as uloop from "uloop";
 import * as libubus from "ubus";
-import * as unetmsg from "unetmsg.client";
-import { readfile, glob, basename } from "fs";
+import { readfile, glob, basename, stat } from "fs";
 let uht = require("uht");
+let unetmsg, unet;
 push(REQUIRE_SEARCH_PATH, "/usr/share/ufp/*.uc");
 
+let unetmsg_installed = stat("/usr/share/ucode/unetmsg");
+
+if (unetmsg_installed)
+	unetmsg = require("unetmsg.client");
+
 uloop.init();
 let ubus = libubus.connect();
-let unet = unetmsg.open(ubus);
+
+if (unetmsg_installed)
+	unet = unetmsg.open(ubus);
+
 let fingerprints = {};
 let fingerprint_ht = [];
 let devices = {};
@@ -49,17 +57,19 @@ function match_fingerprint(key)
 	return fp;
 }
 
-unet.publish("ufp", (req) => {
-	let data = req.args;
-	switch (data.type) {
-	case "get_data":
-		let mac = data.macaddr;
-		if (mac)
-			return { data: devices[mac] };
-		return { data: devices };
-	}
-});
-unet.subscribe("ufp");
+if (unetmsg_installed) {
+	unet.publish("ufp", (req) => {
+		let data = req.args;
+		switch (data.type) {
+		case "get_data":
+			let mac = data.macaddr;
+			if (mac)
+				return { data: devices[mac] };
+			return { data: devices };
+		}
+	});
+	unet.subscribe("ufp");
+}
 
 function dev_timestamp_cmp(a, b)
 {
@@ -74,9 +84,11 @@ function network_devices(local) {
 		devices
 	];
 
-	unet.request("ufp", "get_data", {}, (msg) => {
-		push(device_lists, msg.data);
-	});
+	if (unetmsg_installed) {
+		unet.request("ufp", "get_data", {}, (msg) => {
+			push(device_lists, msg.data);
+		});
+	}
 
 	let cur_devices = [];
 	for (let list in device_lists)
-- 
2.47.3




More information about the openwrt-devel mailing list