From e2f4d98935d3e9eb50a32da8bc5bf8aa756d0422 Mon Sep 17 00:00:00 2001 From: Marek Lindner Date: Tue, 19 Apr 2011 12:49:37 +0000 Subject: [PATCH] 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 --- net/batman-adv/files/etc/config/batman-adv | 2 +- net/batman-adv/files/etc/init.d/batman-adv | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/net/batman-adv/files/etc/config/batman-adv b/net/batman-adv/files/etc/config/batman-adv index 9c66c93fe..31ef797fb 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 5011b6d18..a6a85000d 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 -- 2.30.2