summaryrefslogtreecommitdiff
path: root/alfred
diff options
context:
space:
mode:
authorSven Eckelmann <sven@narfation.org>2019-08-01 20:58:41 +0200
committerSven Eckelmann <sven@narfation.org>2019-08-01 21:34:44 +0200
commit157da8c4ee189764c43b6ce40613e248a15362dc (patch)
tree00d80fcddcfed98f7c08cd726606ba62bb118047 /alfred
parentce3569e1593676dcf1f08bd20be5e3cab5a8e079 (diff)
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>
Diffstat (limited to 'alfred')
-rw-r--r--alfred/Makefile2
-rw-r--r--alfred/files/alfred.config2
-rwxr-xr-xalfred/files/alfred.init17
3 files changed, 15 insertions, 6 deletions
diff --git a/alfred/Makefile b/alfred/Makefile
index aa43b67..9bc1f73 100644
--- a/alfred/Makefile
+++ b/alfred/Makefile
@@ -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
diff --git a/alfred/files/alfred.config b/alfred/files/alfred.config
index 9d3fff6..704adf1 100644
--- a/alfred/files/alfred.config
+++ b/alfred/files/alfred.config
@@ -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'
diff --git a/alfred/files/alfred.init b/alfred/files/alfred.init
index 89e33ab..e5d2006 100755
--- a/alfred/files/alfred.init
+++ b/alfred/files/alfred.init
@@ -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