From d4e1c96cc489760bc46d382e4573ecb098c4bc17 Mon Sep 17 00:00:00 2001 From: Florian Eckert Date: Wed, 18 Oct 2017 16:00:38 +0200 Subject: [PATCH] net/keepalived: move track_interface generation into own section In a vrrp_instance the track_interface could not be referenced similar to a track_script. The uci track_interface section must be always set into every vrrp_instance. During config generation use the already prepared function "print_track_elem_indent" to write the track_interface section into every vrrp_instance which references this. Signed-off-by: Florian Eckert --- net/keepalived/files/keepalived.init | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/net/keepalived/files/keepalived.init b/net/keepalived/files/keepalived.init index 400d12a01..41e311d54 100644 --- a/net/keepalived/files/keepalived.init +++ b/net/keepalived/files/keepalived.init @@ -297,8 +297,8 @@ vrrp_instance() { printf "$INDENT_1}\n" >> $KEEPALIVED_CONF done - # Handle track_interface & track_script lists - for opt in track_interface track_script; do + # Handle track_script lists + for opt in track_script; do config_get $opt $1 $opt eval optval=\$$opt [ -z "$optval" ] && continue @@ -309,6 +309,18 @@ vrrp_instance() { printf "$INDENT_1}\n" >> $KEEPALIVED_CONF done + # Handle track_interface lists + for opt in track_interface; do + config_get $opt $1 $opt + eval optval=\$$opt + [ -z "$optval" ] && continue + printf "$INDENT_1$opt {\n" >> $KEEPALIVED_CONF + for t in $optval; do + config_foreach print_track_elem_indent track_interface $t $INDENT_2 + done + printf "$INDENT_1}\n" >> $KEEPALIVED_CONF + done + # Handle simple lists of strings (with no spaces in between) for opt in unicast_peer; do config_get $opt $1 $opt