From 79e5203ec294cb9f51a48d070b64c1ce79e28855 Mon Sep 17 00:00:00 2001 From: Jonatan Schlag Date: Wed, 19 Jul 2017 16:10:20 +0200 Subject: [PATCH] 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 --- src/header-zone | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) 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() { -- 2.39.2