contrib/meshwizard: Fix getting of mac address when the interface is not up yet,...
authorManuel Munz <freifunk@somakoma.de>
Sun, 3 Jun 2012 08:46:46 +0000 (08:46 +0000)
committerManuel Munz <freifunk@somakoma.de>
Sun, 3 Jun 2012 08:46:46 +0000 (08:46 +0000)
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_auto-ipv6-dhcpv6-ip.sh
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_network.sh
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh

index e10677cc9fe6cd3cf86e2a47543d08a1af6b8987..114c8f9c11a008e98ce2e4377c23270432675121 100755 (executable)
@@ -1,7 +1,16 @@
 #!/bin/sh
+netrenamed=$1
+
 local PREFIX="$(echo $profile_ipv6_prefix| cut -d "/" -f 1| sed 's/::/:/')"
-local MAC="$(ifconfig $1 |grep HWaddr | awk '{ print $5 '})"
-local IPV6_UNIQ="$(echo $MAC | awk -F: '{ print $1$2":"$3$4":"$5$6 }')"
+
+# Get the devices mac address
+local device="$(uci -p/var/state -q get network.$1.ifname)"
+if [ -n "$device" ]; then
+       local MAC="$(ifconfig $netrenamed |grep HWaddr | awk '{ print $5 '})"
+else 
+       local MAC="$(cat /sys/class/net/$1/address)"
+       local IPV6_UNIQ="$(echo $MAC | awk -F: '{ print $1$2":"$3$4":"$5$6 }')"
+fi
 
 echo "${PREFIX}${IPV6_UNIQ}:1"
 
index fc3ca9d1b38c11122a0be7f02f27455485707cbc..c3647c42dc443b1a120fc5f4809b66b70649dc07 100755 (executable)
@@ -27,11 +27,7 @@ EOF
 local ip6addr
 if [ "$profile_ipv6" = 1 ]; then
        if [ "$profile_ipv6_config" = "auto-ipv6-dhcpv6" ]; then
-               # get interface mac
-               local device="$(uci -p/var/state -q get network.$netrenamed.ifname)"
-               if [ -n "device" ]; then
-                       ip6addr="$($dir/helpers/gen_auto-ipv6-dhcpv6-ip.sh $device)"
-               fi
+               ip6addr="$($dir/helpers/gen_auto-ipv6-dhcpv6-ip.sh $netrenamed)"
                uci set network.$netrenamed.ip6addr="${ip6addr}/112"
        fi
 fi
index f7ba95e86034bb4e797f360274e49885925a07d5..29258694dc66b82c8c82f6b6415b7595eb90ba0b 100755 (executable)
@@ -22,7 +22,7 @@ handle_interfacedefaults() {
 config_foreach handle_interfacedefaults InterfaceDefaults
 
 # Set basic olsrd settings
-if [ "profile_ipv6" = 1 ]; then
+if [ "$profile_ipv6" = 1 ]; then
        uci set olsrd.olsrd.IpVersion="6and4"
 fi
 uci_commitverbose "Setup olsr basic settings" olsrd