mirror of
https://github.com/openwrt/routing.git
synced 2025-12-22 01:44:32 +04:00
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:
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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_list_foreach "$section" "interface" append_interface
|
||||
if [ -z "$interfaces" ]; then
|
||||
config_get interface "$section" interface
|
||||
append args "-i $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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user