mirror of
https://github.com/samba-team/samba.git
synced 2025-02-03 13:47:25 +03:00
ctdb-scripts: Fix tunable setup code by making it shell-agnostic
All tunables set in configuration are currently set to 0 on system where /bin/sh is dash (and perhaps other non-bash shells). dash puts single quotes around all values in the output of the "set" builtin command, whereas bash only puts them around values when something needs to be quoted. Tunables always have a simple integer value so dash will quote them and bash won't. The setup code currently passes the raw value, including any quotes to "ctdb setvar ...". This command does no error checking on the input, so "'1'" is converted to 0. Change the code so that the value is determined from the shell variable and is independent of the "set" output. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
This commit is contained in:
parent
664d62b611
commit
39686f4505
@ -121,10 +121,10 @@ update_config_from_tdb() {
|
||||
|
||||
set_ctdb_variables () {
|
||||
# set any tunables from the config file
|
||||
set | grep ^CTDB_SET_ | cut -d_ -f3- |
|
||||
set | sed -n '/^CTDB_SET_/s/=.*//p' |
|
||||
while read v; do
|
||||
varname=`echo $v | cut -d= -f1`
|
||||
value=`echo $v | cut -d= -f2`
|
||||
varname="${v#CTDB_SET_}"
|
||||
value=$(eval echo "\$$v")
|
||||
ctdb setvar $varname $value || return 1
|
||||
echo "Set $varname to $value"
|
||||
done
|
||||
|
Loading…
x
Reference in New Issue
Block a user