[LEDE-DEV] [PATCH] base-files: expand ucidef_set_interface_raw to allow custom configuration

Roman Yeryomin roman at advem.lv
Thu Nov 30 14:39:00 PST 2017


This allows custom config generation.
E.g. setting lan adrress from eeprom or random address
(so that routers can be chained by default) or configuring
a fully custom interface.

Signed-off-by: Roman Yeryomin <roman at advem.lv>
---
 .../base-files/files/lib/functions/uci-defaults.sh | 26 +++++++++++++++++++++-
 .../linux/ar71xx/base-files/etc/board.d/02_network |  4 ++--
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh
index 82ac1d2a4d..0cd519a147 100755
--- a/package/base-files/files/lib/functions/uci-defaults.sh
+++ b/package/base-files/files/lib/functions/uci-defaults.sh
@@ -88,8 +88,32 @@ ucidef_set_interfaces_lan_wan() {
 }
 
 ucidef_set_interface_raw() {
+	local opt=";"
+	local val=""
+
+	[ -z "$1" ] && return
+
 	json_select_object network
-	_ucidef_set_interface "$@"
+
+	for i in "$@"; do
+		[ "$opt" == ";" ] && {
+			json_select_object "$i"
+			opt=""
+			continue
+		}
+		[ -z $opt ] && {
+			opt="$i"
+			continue
+		}
+		[ -z $val ] && val="$i"
+
+		json_add_string "$opt" "$val"
+
+		opt=""
+		val=""
+	done
+
+	json_select ..
 	json_select ..
 }
 
diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network
index 7cf4212ac7..f6c7c90738 100755
--- a/target/linux/ar71xx/base-files/etc/board.d/02_network
+++ b/target/linux/ar71xx/base-files/etc/board.d/02_network
@@ -427,7 +427,7 @@ ar71xx_setup_interfaces()
 		;;
 	tellstick-znet-lite)
 		ucidef_set_interface_wan "eth0"
-		ucidef_set_interface_raw "wlan" "wlan0" "dhcp"
+		ucidef_set_interface_raw "wlan" iface "wlan0" proto "dhcp"
 		;;
 	tl-mr3420-v2|\
 	tl-wr841n-v8|\
@@ -458,7 +458,7 @@ ar71xx_setup_interfaces()
 		;;
 	tl-wr841n-v1|\
 	tl-wr941nd)
-		ucidef_set_interface_raw "eth" "eth0"
+		ucidef_set_interface_raw "eth" iface "eth0"
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
 		;;
 	tl-wr741nd|\
-- 
2.14.1




More information about the Lede-dev mailing list