base-files: do not add relevant sections & options except when ipv6 is support in...
authorRosy Song <rosysong@rosinson.com>
Sat, 4 Aug 2018 11:01:18 +0000 (19:01 +0800)
committerJo-Philipp Wich <jo@mein.io>
Tue, 18 Dec 2018 09:27:36 +0000 (10:27 +0100)
Signed-off-by: Rosy Song <rosysong@rosinson.com>
(backported from 2b637e5ab8ae24ff4176930f259dce195983d7ea)

package/base-files/files/bin/config_generate

index fa148685ccc6de0108b75d5e5268b1a4cfbd4615..c8b253da5bd2ccd06c0f3f6047b196394f918e03 100755 (executable)
@@ -15,10 +15,14 @@ generate_static_network() {
                set network.loopback.proto='static'
                set network.loopback.ipaddr='127.0.0.1'
                set network.loopback.netmask='255.0.0.0'
-               delete network.globals
-               set network.globals='globals'
-               set network.globals.ula_prefix='auto'
        EOF
+               [ -e /proc/sys/net/ipv6 ] && {
+                       uci -q batch <<-EOF
+                               delete network.globals
+                               set network.globals='globals'
+                               set network.globals.ula_prefix='auto'
+                       EOF
+               }
 
        if json_is_a dsl object; then
                json_select dsl
@@ -102,21 +106,23 @@ generate_network() {
                                set network.$1.proto='static'
                                set network.$1.ipaddr='$ipad'
                                set network.$1.netmask='$netm'
-                               set network.$1.ip6assign='60'
                        EOF
+                       [ -e /proc/sys/net/ipv6 ] && uci set network.$1.ip6assign='60'
                ;;
 
                dhcp)
                        # fixup IPv6 slave interface if parent is a bridge
                        [ "$type" = "bridge" ] && ifname="br-$1"
 
-                       uci -q batch <<-EOF
-                               set network.$1.proto='dhcp'
-                               delete network.${1}6
-                               set network.${1}6='interface'
-                               set network.${1}6.ifname='$ifname'
-                               set network.${1}6.proto='dhcpv6'
-                       EOF
+                       uci set network.$1.proto='dhcp'
+                       [ -e /proc/sys/net/ipv6 ] && {
+                               uci -q batch <<-EOF
+                                       delete network.${1}6
+                                       set network.${1}6='interface'
+                                       set network.${1}6.ifname='$ifname'
+                                       set network.${1}6.proto='dhcpv6'
+                               EOF
+                       }
                ;;
 
                pppoe)
@@ -124,12 +130,16 @@ generate_network() {
                                set network.$1.proto='pppoe'
                                set network.$1.username='username'
                                set network.$1.password='password'
-                               set network.$1.ipv6='1'
-                               delete network.${1}6
-                               set network.${1}6='interface'
-                               set network.${1}6.ifname='@${1}'
-                               set network.${1}6.proto='dhcpv6'
                        EOF
+                       [ -e /proc/sys/net/ipv6 ] && {
+                               uci -q batch <<-EOF
+                                       set network.$1.ipv6='1'
+                                       delete network.${1}6
+                                       set network.${1}6='interface'
+                                       set network.${1}6.ifname='@${1}'
+                                       set network.${1}6.proto='dhcpv6'
+                               EOF
+                       }
                ;;
        esac
 }