meshwizard: ipv6 fixes, fix uhttpd setup
[oweals/luci.git] / contrib / package / meshwizard / files / usr / bin / meshwizard / helpers / setup_network.sh
index 1215c95a4cac2e49ab211bef096fbbef1f593e64..325475fa6ebffcf9acc815ea4e42898748478cf1 100755 (executable)
@@ -2,12 +2,13 @@
 # Argument $1: network interface
  
 net="$1"
-. /etc/functions.sh
+. /lib/functions.sh
 . $dir/functions.sh
 
 # Setup a (new) interface section for $net
 
-ipaddr=$(uci get meshwizard.netconfig.$net\_ip4addr)
+ipaddr=$(uci -q get meshwizard.netconfig.$net\_ip4addr)
+ip6addr=$(uci -q get meshwizard.netconfig.$net\_ip6addr)
 [ -z "$ipaddr" ] && msg_missing_value meshwizard $net\_ip4addr
 
 netmask=$(uci -q get meshwizard.netconfig.$net\_netmask)
@@ -23,6 +24,18 @@ uci batch << EOF
        set network.$netrenamed.netmask="$netmask"
 EOF
 
+# Setup IPv6 for the interface
+local ip6addr
+if [ "$ipv6_enabled" = 1 ]; then
+       if [ "$ipv6_config" = "auto-ipv6-dhcpv6" ]; then
+               ip6addr="$($dir/helpers/gen_auto-ipv6-dhcpv6-ip.sh $netrenamed)"
+               uci set network.$netrenamed.ip6addr="${ip6addr}/112"
+       fi
+       if [ "$ipv6_config" = "static" ] && [ -n "$ip6addr" ]; then
+               uci set network.$netrenamed.ip6addr="$ip6addr"
+       fi
+fi
+
 uci_commitverbose "Setup interface $netrenamed" network
 
 # setup dhcp alias/interface