From: Marek Lindner Date: Tue, 19 Apr 2011 12:49:37 +0000 (+0000) Subject: batman-adv: init script tries to retrieve interfaces from uci X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=e83e02a5184f36ebe45b110144b01d8adab3544b;p=openwrt%2Fsvn-archive%2Farchive.git batman-adv: init script tries to retrieve interfaces from uci The batman-adv init script will query uci (network.$iface.ifname) to retrieve the interface name to re-use the existing network configuration system. The default iface configuration (batman-adv.bat0.interfaces) is set to 'mesh' which allows to start batman-adv as soon as the network configuration contains a 'mesh' stanza. Signed-off-by: Filippo Sallemi Signed-off-by: Gioacchino Mazzurco SVN-Revision: 26719 --- diff --git a/net/batman-adv/files/etc/config/batman-adv b/net/batman-adv/files/etc/config/batman-adv index 9c66c93fe6..31ef797fbb 100644 --- a/net/batman-adv/files/etc/config/batman-adv +++ b/net/batman-adv/files/etc/config/batman-adv @@ -1,6 +1,6 @@ config 'mesh' 'bat0' - option 'interfaces' 'wlan0' + option 'interfaces' 'mesh' option 'aggregated_ogms' option 'bonding' option 'fragmentation' diff --git a/net/batman-adv/files/etc/init.d/batman-adv b/net/batman-adv/files/etc/init.d/batman-adv index 5011b6d183..a6a85000d4 100644 --- a/net/batman-adv/files/etc/init.d/batman-adv +++ b/net/batman-adv/files/etc/init.d/batman-adv @@ -1,4 +1,6 @@ #!/bin/sh /etc/rc.common +# Copyright (C) 2011 OpenWrt.org + START=90 is_module_loaded() { @@ -33,11 +35,16 @@ start_mesh () { echo Error, you must specify at least a network interface return fi - + for interface in $interfaces do - [ ! -f "/sys/class/net/$interface/batman_adv/mesh_iface" ] && echo "Can't add interface $interface - ignoring" && continue - echo $meshif > /sys/class/net/$interface/batman_adv/mesh_iface + ifname=$(uci -P /var/state get network.$interface.ifname 2>&-) + [ ! -f "/sys/class/net/$ifname/batman_adv/mesh_iface" ] && { + ifname=${interface} + [ ! -f "/sys/class/net/$ifname/batman_adv/mesh_iface" ] && echo "Can't add interface $ifname - ignoring" && continue + } + + echo $meshif > /sys/class/net/$ifname/batman_adv/mesh_iface done if [ $orig_interval ]; then @@ -86,7 +93,7 @@ stop_mesh() { for iface in $(ls /sys/class/net/*) do [ ! -f "$iface/batman_adv/mesh_iface" ] && continue - [ "$(head -1 $iface/batman_adv/mesh_iface)" != "status: $meshif" ] && continue + [ "$(head -1 $iface/batman_adv/mesh_iface)" != "$meshif" ] && continue echo "none" > $iface/batman_adv/mesh_iface done