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 <jonatan.schlag@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
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() {