We now check if we get the config, which we edit in this moment and when we continue.
Fixes: #11451
Signed-off-by: Jonatan Schlag jonatan.schlag@ipfire.org --- src/functions/functions.zone | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/functions/functions.zone b/src/functions/functions.zone index 1eb492f..941314d 100644 --- a/src/functions/functions.zone +++ b/src/functions/functions.zone @@ -1155,12 +1155,13 @@ zone_config_check_same_setting() { # with the same setting is already configured for this zone. # Returns True when yes and False when no.
- assert [ $# -eq 4 ] + assert [ $# -eq 5 ]
local zone=${1} local hook=${2} - local key=${3} - local value=${4} + local id=${3} + local key=${4} + local value=${5}
# The key should be local for this function local ${key} @@ -1171,6 +1172,12 @@ zone_config_check_same_setting() { if [[ $(zone_config_get_hook "${zone}" "${config}") != ${hook} ]]; then continue fi + + # Check if we get the config we want to create or edit (we must ignore this config on edit) + if [[ "${hook}.${id}" = "${config}" ]]; then + continue + fi + # Get the value of the key for a given function zone_config_settings_read "${zone}" "${config}" \ --ignore-superfluous-settings "${key}"