Browse Source

Mesh daemon checks that wlan0 exists before running

Bob Mottram 9 years ago
parent
commit
a7e76307a5
1 changed files with 27 additions and 16 deletions
  1. 27
    16
      src/freedombone

+ 27
- 16
src/freedombone View File

@@ -1673,14 +1673,27 @@ function mesh_babel {
1673 1673
   babel_script=/var/lib/babel
1674 1674
 
1675 1675
   echo '#!/bin/sh' > $babel_script
1676
+  echo 'IFACE=wlan0' >> $babel_script
1677
+  echo 'IFACE_EXISTS=$(grep "$IFACE" /proc/net/dev)' >> $babel_script
1678
+  echo '' >> $babel_script
1679
+  echo 'if [ ! $IFACE_EXISTS ]; then' >> $babel_script
1680
+  echo '    echo "Interface $IFACE was not found"' >> $babel_script
1681
+  echo '    ifconfig $IFACE down' >> $babel_script
1682
+  echo '    systemctl restart networking' >> $babel_script
1683
+  echo '    exit 1' >> $babel_script
1684
+  echo 'fi' >> $babel_script
1685
+  echo '' >> $babel_script
1676 1686
   echo 'systemctl stop networking' >> $babel_script
1677
-  echo 'ifconfig wlan0 down' >> $babel_script
1678
-  echo "iwconfig wlan0 mode ad-hoc channel $WIFI_CHANNEL essid \"$ESSID\"" >> $babel_script
1679
-  echo 'ifconfig wlan0 up' >> $babel_script
1680
-  echo 'avahi-autoipd wlan0' >> $babel_script
1681
-  echo -n "ifconfig wlan0:avahi $LOCAL_NETWORK_STATIC_IP_ADDRESS netmask " >> $babel_script
1687
+  echo 'ifconfig $IFACE down' >> $babel_script
1688
+  echo -n 'iwconfig $IFACE mode ad-hoc channel ' >> $babel_script
1689
+  echo "$WIFI_CHANNEL essid \"$ESSID\"" >> $babel_script
1690
+  echo 'ifconfig $IFACE up' >> $babel_script
1691
+  echo 'avahi-autoipd $IFACE' >> $babel_script
1692
+  echo -n 'ifconfig $IFACE:avahi ' >> $babel_script
1693
+  echo -n "$LOCAL_NETWORK_STATIC_IP_ADDRESS netmask " >> $babel_script
1682 1694
   echo '255.255.255.0 broadcast 192.168.13.255' >> $babel_script
1683
-  echo "babeld -D wlan0:avahi -p $BABEL_PORT -d 5 wlan0" >> $babel_script
1695
+  echo -n 'babeld -D $IFACE:avahi -p ' >> $babel_script
1696
+  echo "$BABEL_PORT -d 5 wlan0" >> $babel_script
1684 1697
   echo 'exit 0' >> $babel_script
1685 1698
   chmod +x $babel_script
1686 1699
 
@@ -1738,20 +1751,14 @@ function mesh_batman_bridge {
1738 1751
   echo '' >> $batman_script
1739 1752
   echo '# Ethernet bridge definition (bridged do bat0)' >> $batman_script
1740 1753
   echo 'BRIDGE=br-mesh' >> $batman_script
1754
+  echo 'IFACE=wlan0' >> $batman_script
1741 1755
   echo 'EIFACE=eth0' >> $batman_script
1756
+  echo 'IFACE_EXISTS=$(grep "$IFACE" /proc/net/dev)' >> $batman_script
1742 1757
   echo '' >> $batman_script
1743 1758
   echo 'if [ -e /etc/default/batctl ]; then' >> $batman_script
1744 1759
   echo '    . /etc/default/batctl' >> $batman_script
1745 1760
   echo 'fi' >> $batman_script
1746 1761
   echo '' >> $batman_script
1747
-  echo 'first_wifi_interface() {' >> $batman_script
1748
-  echo '    IFACE=$(ls -d /sys/class/net/*/wireless 2>/dev/null | sort | head -1|cut -d/ -f5)' >> $batman_script
1749
-  echo '    if [ -z "$IFACE" ] ;then' >> $batman_script
1750
-  echo '        IFACE=$(iwconfig 2>/dev/null | sort | awk "/IEEE 802/ {print $1; exit}")' >> $batman_script
1751
-  echo '    fi' >> $batman_script
1752
-  echo '    echo $IFACE' >> $batman_script
1753
-  echo '}' >> $batman_script
1754
-  echo '' >> $batman_script
1755 1762
   echo 'start() {' >> $batman_script
1756 1763
   echo '    if [ -z "$IFACE" ] ; then' >> $batman_script
1757 1764
   echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
@@ -1820,7 +1827,11 @@ function mesh_batman_bridge {
1820 1827
   echo '    systemctl restart networking' >> $batman_script
1821 1828
   echo '}' >> $batman_script
1822 1829
   echo '' >> $batman_script
1823
-  echo 'IFACE=$(first_wifi_interface)' >> $batman_script
1830
+  echo 'if [ ! $IFACE_EXISTS ]; then' >> $batman_script
1831
+  echo '    echo "Interface $IFACE was not found"' >> $batman_script
1832
+  echo '    stop' >> $batman_script
1833
+  echo '    exit 1' >> $batman_script
1834
+  echo 'fi' >> $batman_script
1824 1835
   echo '' >> $batman_script
1825 1836
   echo 'case "$1" in' >> $batman_script
1826 1837
   echo '    start|stop)' >> $batman_script
@@ -1829,7 +1840,7 @@ function mesh_batman_bridge {
1829 1840
   echo '    *)' >> $batman_script
1830 1841
   echo '    echo "error: invalid parameter $1"' >> $batman_script
1831 1842
   echo '    echo "usage: $0 {start|stop}"' >> $batman_script
1832
-  echo '    exit 1' >> $batman_script
1843
+  echo '    exit 2' >> $batman_script
1833 1844
   echo '    ;;' >> $batman_script
1834 1845
   echo 'esac' >> $batman_script
1835 1846
   echo 'exit 0' >> $batman_script