[OpenWrt-Devel] [PATCH] base-files: allow to set arbitrary ip address and netmask

Roman Yeryomin leroi.lists at gmail.com
Wed Apr 13 08:57:03 EDT 2016


Signed-off-by: Roman Yeryomin <roman at advem.lv>
---
 package/base-files/files/bin/config_generate | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
index 4256d3c..03d1a36 100755
--- a/package/base-files/files/bin/config_generate
+++ b/package/base-files/files/bin/config_generate
@@ -56,11 +56,11 @@ generate_static_network() {
 
 addr_offset=2
 generate_network() {
-	local ifname macaddr protocol type
+	local ifname macaddr protocol type ipaddr netmask
 
 	json_select network
 		json_select "$1"
-			json_get_vars ifname macaddr protocol
+			json_get_vars ifname macaddr protocol ipaddr netmask
 		json_select ..
 	json_select ..
 
@@ -88,16 +88,18 @@ generate_network() {
 
 	case "$protocol" in
 		static)
-			local ipaddr
+			local ipad
 			case "$1" in
-				lan) ipaddr="192.168.1.1" ;;
-				*) ipaddr="192.168.$((addr_offset++)).1" ;;
+				lan) ipad=${ipaddr:-"192.168.1.1"} ;;
+				*) ipad=${ipaddr:-"192.168.$((addr_offset++)).1"} ;;
 			esac
 
+			netm=${netmask:-"255.255.255.0"}
+
 			uci -q batch <<-EOF
 				set network.$1.proto='static'
-				set network.$1.ipaddr='$ipaddr'
-				set network.$1.netmask='255.255.255.0'
+				set network.$1.ipaddr='$ipad'
+				set network.$1.netmask='$netm'
 				set network.$1.ip6assign='60'
 			EOF
 		;;
-- 
2.5.0
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list