From 7a36f263beb1cfbd732e1f40e5e8ff8d5bb1f721 Mon Sep 17 00:00:00 2001
From: juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Mon, 7 Nov 2011 21:43:51 +0000
Subject: ar71xx: create generic network config from an uci-defaults script

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28817 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 .../base-files/etc/defconfig/generic/network       | 16 ------
 .../linux/ar71xx/base-files/etc/init.d/defconfig   |  2 +-
 .../ar71xx/base-files/etc/uci-defaults/network     | 65 ++++++++++++++++++++++
 3 files changed, 66 insertions(+), 17 deletions(-)
 delete mode 100644 target/linux/ar71xx/base-files/etc/defconfig/generic/network
 create mode 100755 target/linux/ar71xx/base-files/etc/uci-defaults/network

(limited to 'target')

diff --git a/target/linux/ar71xx/base-files/etc/defconfig/generic/network b/target/linux/ar71xx/base-files/etc/defconfig/generic/network
deleted file mode 100644
index 2d4d8e012..000000000
--- a/target/linux/ar71xx/base-files/etc/defconfig/generic/network
+++ /dev/null
@@ -1,16 +0,0 @@
-config interface loopback
-	option ifname	lo
-	option proto	static
-	option ipaddr	127.0.0.1
-	option netmask	255.0.0.0
-
-config interface lan
-	option ifname	eth0
-	option type	bridge
-	option proto	static
-	option ipaddr	192.168.1.1
-	option netmask	255.255.255.0
-
-config interface wan
-	option ifname	eth1
-	option proto	dhcp
diff --git a/target/linux/ar71xx/base-files/etc/init.d/defconfig b/target/linux/ar71xx/base-files/etc/init.d/defconfig
index 9fdfd6f89..364fa4a6a 100755
--- a/target/linux/ar71xx/base-files/etc/init.d/defconfig
+++ b/target/linux/ar71xx/base-files/etc/init.d/defconfig
@@ -10,7 +10,7 @@ start() {
 
 	local board=$(ar71xx_board_name)
 
-	[ ! -d /etc/defconfig/$board ] && board="generic"
+	[ ! -d /etc/defconfig/$board ] && return 0
 
 	for f in $( ls /etc/defconfig/$board ); do
 		if [ ! -e /etc/config/$f ]; then
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/network b/target/linux/ar71xx/base-files/etc/uci-defaults/network
new file mode 100755
index 000000000..0a355eaf0
--- /dev/null
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/network
@@ -0,0 +1,65 @@
+#!/bin/sh
+#
+# Copyright (C) 2011 OpenWrt.org
+#
+
+set_interface_loopback() {
+	uci batch <<EOF
+set network.loopback='interface'
+set network.loopback.ifname='lo'
+set network.loopback.proto='static'
+set network.loopback.ipaddr='127.0.0.1'
+set network.loopback.netmask='255.0.0.0'
+EOF
+}
+
+set_interface_lan() {
+	local ifname=$1
+
+	uci batch <<EOF
+set network.lan='interface'
+set network.lan.ifname='$ifname'
+set network.lan.type='bridge'
+set network.lan.proto='static'
+set network.lan.ipaddr='192.168.1.1'
+set network.lan.netmask='255.255.255.0'
+EOF
+}
+
+set_interface_wan() {
+	local ifname=$1
+
+	uci batch <<EOF
+set network.wan='interface'
+set network.wan.ifname='$ifname'
+set network.wan.proto='dhcp'
+EOF
+}
+
+set_interfaces_lan_wan() {
+	local lan_ifname=$1
+	local wan_ifname=$2
+
+	set_interface_lan "$lan_ifname"
+	set_interface_wan "$wan_ifname"
+}
+
+[ -e /etc/config/network ] && exit 0
+
+touch /etc/config/network
+
+set_interface_loopback
+
+. /lib/ar71xx.sh
+
+board=$(ar71xx_board_name)
+
+case "$board" in
+*)
+	set_interfaces_lan_wan "eth0" "eth1"
+	;;
+esac
+
+uci commit network
+
+exit 0
-- 
cgit v1.2.3