alfred: Support multiple listening interfaces

The alfred daemon allows to be started with multiple interfaces. The first
interface is used for communication and to calculate the source mac
address. The rest of the interfaces are only used for communication.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
This commit is contained in:
Sven Eckelmann 2019-08-01 20:58:41 +02:00
parent ce3569e159
commit 157da8c4ee
3 changed files with 15 additions and 6 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=alfred
PKG_VERSION:=2019.3
PKG_RELEASE:=0
PKG_RELEASE:=1
PKG_HASH:=a4c37920de497701680abb55c49cdcd11e4e7135e0e7e79259c35492a3df4766
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz

View File

@ -1,5 +1,5 @@
config 'alfred' 'alfred'
option interface 'br-lan'
list interface 'br-lan'
option mode 'master'
option batmanif 'bat0'
option start_vis '1'

View File

@ -54,10 +54,17 @@ wait_for_ll_address() {
exit 1
}
append_interface()
{
append "interfaces" "$1" ","
wait_for_ll_address "$1"
}
alfred_start() {
local args=""
local section="$1"
local disabled interface mode
local interfaces
# check if section is disabled
config_get_bool disabled "$section" disabled 0
@ -65,8 +72,12 @@ alfred_start() {
args=""
config_get interface "$section" interface
append args "-i $interface"
config_list_foreach "$section" "interface" append_interface
if [ -z "$interfaces" ]; then
config_get interface "$section" interface
append_interface "$interface"
fi
append args "-i $interfaces"
config_get mode "$section" mode
[ "$mode" = "master" ] && append args "-m"
@ -78,8 +89,6 @@ alfred_start() {
wait_for_dir "$batmanif" "/sys/class/net/$batmanif/mesh"
fi
wait_for_ll_address "$interface"
append alfred_args "$args"
enable=1