浏览代码

Mesh daemon checks that wlan0 exists before running

Bob Mottram 9 年前
父节点
当前提交
a7e76307a5
共有 1 个文件被更改,包括 27 次插入16 次删除
  1. 27
    16
      src/freedombone

+ 27
- 16
src/freedombone 查看文件

1673
   babel_script=/var/lib/babel
1673
   babel_script=/var/lib/babel
1674
 
1674
 
1675
   echo '#!/bin/sh' > $babel_script
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
   echo 'systemctl stop networking' >> $babel_script
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
   echo '255.255.255.0 broadcast 192.168.13.255' >> $babel_script
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
   echo 'exit 0' >> $babel_script
1697
   echo 'exit 0' >> $babel_script
1685
   chmod +x $babel_script
1698
   chmod +x $babel_script
1686
 
1699
 
1738
   echo '' >> $batman_script
1751
   echo '' >> $batman_script
1739
   echo '# Ethernet bridge definition (bridged do bat0)' >> $batman_script
1752
   echo '# Ethernet bridge definition (bridged do bat0)' >> $batman_script
1740
   echo 'BRIDGE=br-mesh' >> $batman_script
1753
   echo 'BRIDGE=br-mesh' >> $batman_script
1754
+  echo 'IFACE=wlan0' >> $batman_script
1741
   echo 'EIFACE=eth0' >> $batman_script
1755
   echo 'EIFACE=eth0' >> $batman_script
1756
+  echo 'IFACE_EXISTS=$(grep "$IFACE" /proc/net/dev)' >> $batman_script
1742
   echo '' >> $batman_script
1757
   echo '' >> $batman_script
1743
   echo 'if [ -e /etc/default/batctl ]; then' >> $batman_script
1758
   echo 'if [ -e /etc/default/batctl ]; then' >> $batman_script
1744
   echo '    . /etc/default/batctl' >> $batman_script
1759
   echo '    . /etc/default/batctl' >> $batman_script
1745
   echo 'fi' >> $batman_script
1760
   echo 'fi' >> $batman_script
1746
   echo '' >> $batman_script
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
   echo 'start() {' >> $batman_script
1762
   echo 'start() {' >> $batman_script
1756
   echo '    if [ -z "$IFACE" ] ; then' >> $batman_script
1763
   echo '    if [ -z "$IFACE" ] ; then' >> $batman_script
1757
   echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
1764
   echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
1820
   echo '    systemctl restart networking' >> $batman_script
1827
   echo '    systemctl restart networking' >> $batman_script
1821
   echo '}' >> $batman_script
1828
   echo '}' >> $batman_script
1822
   echo '' >> $batman_script
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
   echo '' >> $batman_script
1835
   echo '' >> $batman_script
1825
   echo 'case "$1" in' >> $batman_script
1836
   echo 'case "$1" in' >> $batman_script
1826
   echo '    start|stop)' >> $batman_script
1837
   echo '    start|stop)' >> $batman_script
1829
   echo '    *)' >> $batman_script
1840
   echo '    *)' >> $batman_script
1830
   echo '    echo "error: invalid parameter $1"' >> $batman_script
1841
   echo '    echo "error: invalid parameter $1"' >> $batman_script
1831
   echo '    echo "usage: $0 {start|stop}"' >> $batman_script
1842
   echo '    echo "usage: $0 {start|stop}"' >> $batman_script
1832
-  echo '    exit 1' >> $batman_script
1843
+  echo '    exit 2' >> $batman_script
1833
   echo '    ;;' >> $batman_script
1844
   echo '    ;;' >> $batman_script
1834
   echo 'esac' >> $batman_script
1845
   echo 'esac' >> $batman_script
1835
   echo 'exit 0' >> $batman_script
1846
   echo 'exit 0' >> $batman_script