babeld: allow changing alternative configuration file and directory

Signed-off-by: Gabriel Kerneis <kerneis@google.com>
Signed-off-by: Markus Stenberg <markus.stenberg@iki.fi>
This commit is contained in:
Gabriel Kerneis 2015-05-21 10:31:34 +02:00 committed by Steven Barth
parent 8978061d1c
commit 4489688125
2 changed files with 17 additions and 6 deletions

View File

@ -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

View File

@ -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() {