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 Markus Stenberg
parent b39fa42c62
commit ac643416dc
2 changed files with 17 additions and 6 deletions

View file

@ -1,10 +1,10 @@
package babeld package babeld
# Configuration set in this file ends up in /var/etc/babeld.conf. # Babeld reads options from the following files (the last one takes precedence
# Babeld is told to use both /etc/babeld.conf and /var/etc/babeld.conf, so # if an option is defined in several places):
# you can use one or the other, or even both at the same time. If an # - the file defined by the option conf_file (default: /etc/babeld.conf),
# option is defined in both files, the version in /var/etc/babeld.conf # - *.conf files in the directory defined by conf_dir (default: /tmp/babel.d/),
# takes precedence. # - this UCI configuration file.
# See "man babeld" for all available options ("Global options"). # See "man babeld" for all available options ("Global options").
# Important: remember to use '_' instead of '-' in option names. # Important: remember to use '_' instead of '-' in option names.
@ -20,6 +20,10 @@ config general
## import-table statement, "option import_table 42" should work. ## import-table statement, "option import_table 42" should work.
# list 'import_table' '42' # list 'import_table' '42'
# list 'import_table' '100' # 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 config interface
## Remove this line to enable babeld on this 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 # Options to ignore for the global section (old options that are translated
# for backward compatibility with old configuration files) # 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 # Append a line to the configuration file
cfg_append() { cfg_append() {
@ -109,6 +109,13 @@ parse_old_global_options() {
[ "$_bool" -eq 1 ] && add_default_option "wired" "false" [ "$_bool" -eq 1 ] && add_default_option "wired" "false"
config_get_bool _bool "$section" 'no_split_horizon' 0 config_get_bool _bool "$section" 'no_split_horizon' 0
[ "$_bool" -eq 1 ] && add_default_option "split_horizon" "false" [ "$_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() { babel_filter() {