From: Jonatan Schlag Date: Wed, 19 Jul 2017 14:10:20 +0000 (+0200) Subject: header-zone: refactor hook_edit nad hook_new X-Git-Tag: 009~156 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=79e5203ec294cb9f51a48d070b64c1ce79e28855;p=network.git header-zone: refactor hook_edit nad hook_new We now return error codes and break when something important goes wrong. because of that, we have to split hook_new and hook_edit. When zone_settins-read fails in hook_edit we cannot go but it would every time we would call it in hook_new. Signed-off-by: Jonatan Schlag Signed-off-by: Michael Tremer --- diff --git a/src/header-zone b/src/header-zone index 98b0ce77..219b0d62 100644 --- a/src/header-zone +++ b/src/header-zone @@ -34,17 +34,39 @@ hook_new() { assert isset zone shift - zone_settings_read "${zone}" - - hook_parse_cmdline $@ + if ! hook_parse_cmdline $@; then + return ${EXIT_ERROR} + fi - zone_settings_write "${zone}" + if ! zone_settings_write "${zone}"; then + log ERROR "Could not write settings for zone ${zone}" + return ${EXIT_ERROR} + fi exit ${EXIT_OK} } hook_edit() { - hook_new $@ + local zone="${1}" + assert isset zone + shift + + if ! zone_settings_read "${zone}"; then + log ERROR "Could not read settings for zone ${zone}" + return ${EXIT_ERROR} + fi + + if ! hook_parse_cmdline $@; then + return ${EXIT_ERROR} + fi + + if ! zone_settings_write "${zone}"; then + log ERROR "Could not write settings for zone ${zone}" + return ${EXIT_ERROR} + fi + + exit ${EXIT_OK} + } hook_remove() {