From: Gabriel Kerneis Date: Thu, 21 May 2015 08:31:34 +0000 (+0200) Subject: babeld: allow changing alternative configuration file and directory X-Git-Url: http://git.openwrt.org/?p=feed%2Frouting.git;a=commitdiff_plain;h=ac643416dc6065554066574f147def8134556474 babeld: allow changing alternative configuration file and directory Signed-off-by: Gabriel Kerneis Signed-off-by: Markus Stenberg --- diff --git a/babeld/files/babeld.config b/babeld/files/babeld.config index fa22fd6..cb2a131 100644 --- a/babeld/files/babeld.config +++ b/babeld/files/babeld.config @@ -1,10 +1,10 @@ package babeld -# Configuration set in this file ends up in /var/etc/babeld.conf. -# Babeld is told to use both /etc/babeld.conf and /var/etc/babeld.conf, so -# you can use one or the other, or even both at the same time. If an -# option is defined in both files, the version in /var/etc/babeld.conf -# takes precedence. +# Babeld reads options from the following files (the last one takes precedence +# if an option is defined in several places): +# - the file defined by the option conf_file (default: /etc/babeld.conf), +# - *.conf files in the directory defined by conf_dir (default: /tmp/babel.d/), +# - this UCI configuration file. # See "man babeld" for all available options ("Global options"). # Important: remember to use '_' instead of '-' in option names. @@ -20,6 +20,10 @@ config general ## import-table statement, "option import_table 42" should work. # list 'import_table' '42' # list 'import_table' '100' + ## Alternative configuration file and directory. + ## See comment at the top of this file for more details. + # option 'conf_file' '/etc/babeld.conf' + # option 'conf_dir' '/tmp/babel.d/' config interface ## Remove this line to enable babeld on this interface diff --git a/babeld/files/babeld.init b/babeld/files/babeld.init index 797ba2f..6796a34 100755 --- a/babeld/files/babeld.init +++ b/babeld/files/babeld.init @@ -13,7 +13,7 @@ EXTRA_HELP=" status Dump Babel's table to the log file." # Options to ignore for the global section (old options that are translated # for backward compatibility with old configuration files) -ignored_options="carrier_sense assume_wireless no_split_horizon random_router_id multicast_address port hello_interval wired_hello_interval smoothing_half_time duplication_priority local_server conf_file" +ignored_options="carrier_sense assume_wireless no_split_horizon random_router_id multicast_address port hello_interval wired_hello_interval smoothing_half_time duplication_priority local_server conf_file conf_dir" # Append a line to the configuration file cfg_append() { @@ -109,6 +109,13 @@ parse_old_global_options() { [ "$_bool" -eq 1 ] && add_default_option "wired" "false" config_get_bool _bool "$section" 'no_split_horizon' 0 [ "$_bool" -eq 1 ] && add_default_option "split_horizon" "false" + # Configure alternative configuration file and directory + local conf_file + config_get conf_file "$section" "conf_file" + [ -n "$conf_file" ] && OTHERCONFIGFILE="$conf_file" + local conf_dir + config_get conf_dir "$section" "conf_dir" + [ -n "$conf_dir" ] && OTHERCONFIGDIR="$conf_dir" } babel_filter() {