From f604af1dfeae489ff4ddfcfc6169da0d3aa564c0 Mon Sep 17 00:00:00 2001 From: Sven Nierlein Date: Sun, 29 Sep 2024 10:37:50 +0200 Subject: [PATCH] fix parsing bool values for some attributes the parser set a flag. This has to be done before returning from the bool parser. --- src/naemon/xodtemplate.c | 56 ++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/naemon/xodtemplate.c b/src/naemon/xodtemplate.c index 01a5f140..f9297cff 100644 --- a/src/naemon/xodtemplate.c +++ b/src/naemon/xodtemplate.c @@ -6991,8 +6991,8 @@ static int xodtemplate_add_object_property(char *input) } temp_servicedependency->have_dependency_period = TRUE; } else if (!strcmp(variable, "inherits_parent")) { - return xod_parse_bool(temp_servicedependency, inherits_parent, value); temp_servicedependency->have_inherits_parent = TRUE; + return xod_parse_bool(temp_servicedependency, inherits_parent, value); } else if (!strcmp(variable, "execution_failure_options") || !strcmp(variable, "execution_failure_criteria")) { temp_servicedependency->have_execution_failure_options = TRUE; for (temp_ptr = strtok(value, ", "); temp_ptr; temp_ptr = strtok(NULL, ", ")) { @@ -7259,20 +7259,20 @@ static int xodtemplate_add_object_property(char *input) } temp_contact->have_service_notification_options = TRUE; } else if (!strcmp(variable, "host_notifications_enabled")) { - return xod_parse_bool(temp_contact, host_notifications_enabled, value); temp_contact->have_host_notifications_enabled = TRUE; + return xod_parse_bool(temp_contact, host_notifications_enabled, value); } else if (!strcmp(variable, "service_notifications_enabled")) { - return xod_parse_bool(temp_contact, service_notifications_enabled, value); temp_contact->have_service_notifications_enabled = TRUE; + return xod_parse_bool(temp_contact, service_notifications_enabled, value); } else if (!strcmp(variable, "can_submit_commands")) { - return xod_parse_bool(temp_contact, can_submit_commands, value); temp_contact->have_can_submit_commands = TRUE; + return xod_parse_bool(temp_contact, can_submit_commands, value); } else if (!strcmp(variable, "retain_status_information")) { - return xod_parse_bool(temp_contact, retain_status_information, value); temp_contact->have_retain_status_information = TRUE; + return xod_parse_bool(temp_contact, retain_status_information, value); } else if (!strcmp(variable, "retain_nonstatus_information")) { - return xod_parse_bool(temp_contact, retain_nonstatus_information, value); temp_contact->have_retain_nonstatus_information = TRUE; + return xod_parse_bool(temp_contact, retain_nonstatus_information, value); } else if (!strcmp(variable, "minimum_value")) { temp_contact->minimum_value = strtoul(value, NULL, 10); temp_contact->have_minimum_value = TRUE; @@ -7452,17 +7452,17 @@ static int xodtemplate_add_object_property(char *input) temp_host->max_check_attempts = atoi(value); temp_host->have_max_check_attempts = TRUE; } else if (!strcmp(variable, "checks_enabled") || !strcmp(variable, "active_checks_enabled")) { - return xod_parse_bool(temp_host, active_checks_enabled, value); temp_host->have_active_checks_enabled = TRUE; + return xod_parse_bool(temp_host, active_checks_enabled, value); } else if (!strcmp(variable, "passive_checks_enabled")) { - return xod_parse_bool(temp_host, passive_checks_enabled, value); temp_host->have_passive_checks_enabled = TRUE; + return xod_parse_bool(temp_host, passive_checks_enabled, value); } else if (!strcmp(variable, "event_handler_enabled")) { - return xod_parse_bool(temp_host, event_handler_enabled, value); temp_host->have_event_handler_enabled = TRUE; + return xod_parse_bool(temp_host, event_handler_enabled, value); } else if (!strcmp(variable, "check_freshness")) { - return xod_parse_bool(temp_host, check_freshness, value); temp_host->have_check_freshness = TRUE; + return xod_parse_bool(temp_host, check_freshness, value); } else if (!strcmp(variable, "freshness_threshold")) { temp_host->freshness_threshold = atoi(value); temp_host->have_freshness_threshold = TRUE; @@ -7473,8 +7473,8 @@ static int xodtemplate_add_object_property(char *input) temp_host->high_flap_threshold = strtod(value, NULL); temp_host->have_high_flap_threshold = TRUE; } else if (!strcmp(variable, "flap_detection_enabled")) { - return xod_parse_bool(temp_host, flap_detection_enabled, value); temp_host->have_flap_detection_enabled = TRUE; + return xod_parse_bool(temp_host, flap_detection_enabled, value); } else if (!strcmp(variable, "flap_detection_options")) { /* user is specifying something, so discard defaults... */ @@ -7520,8 +7520,8 @@ static int xodtemplate_add_object_property(char *input) } temp_host->have_notification_options = TRUE; } else if (!strcmp(variable, "notifications_enabled")) { - return xod_parse_bool(temp_host, notifications_enabled, value); temp_host->have_notifications_enabled = TRUE; + return xod_parse_bool(temp_host, notifications_enabled, value); } else if (!strcmp(variable, "notification_interval")) { temp_host->notification_interval = strtod(value, NULL); temp_host->have_notification_interval = TRUE; @@ -7547,8 +7547,8 @@ static int xodtemplate_add_object_property(char *input) } temp_host->have_stalking_options = TRUE; } else if (!strcmp(variable, "process_perf_data")) { - return xod_parse_bool(temp_host, process_perf_data, value); temp_host->have_process_perf_data = TRUE; + return xod_parse_bool(temp_host, process_perf_data, value); } else if (!strcmp(variable, "failure_prediction_enabled")) { xodtemplate_obsoleted(variable, temp_host->_start_line); } else if (!strcmp(variable, "2d_coords")) { @@ -7581,14 +7581,14 @@ static int xodtemplate_add_object_property(char *input) temp_host->z_3d = strtod(temp_ptr, NULL); temp_host->have_3d_coords = TRUE; } else if (!strcmp(variable, "obsess_over_host") || !strcmp(variable, "obsess")) { - return xod_parse_bool(temp_host, obsess, value); temp_host->have_obsess = TRUE; + return xod_parse_bool(temp_host, obsess, value); } else if (!strcmp(variable, "retain_status_information")) { - return xod_parse_bool(temp_host, retain_status_information, value); temp_host->have_retain_status_information = TRUE; + return xod_parse_bool(temp_host, retain_status_information, value); } else if (!strcmp(variable, "retain_nonstatus_information")) { - return xod_parse_bool(temp_host, retain_nonstatus_information, value); temp_host->have_retain_nonstatus_information = TRUE; + return xod_parse_bool(temp_host, retain_nonstatus_information, value); } else if (!strcmp(variable, "register")) return xod_parse_bool(temp_host, register_object, value); else if (variable[0] == '_') { @@ -7783,11 +7783,11 @@ static int xodtemplate_add_object_property(char *input) temp_service->retry_interval = strtod(value, NULL); temp_service->have_retry_interval = TRUE; } else if (!strcmp(variable, "active_checks_enabled")) { - return xod_parse_bool(temp_service, active_checks_enabled, value); temp_service->have_active_checks_enabled = TRUE; + return xod_parse_bool(temp_service, active_checks_enabled, value); } else if (!strcmp(variable, "passive_checks_enabled")) { - return xod_parse_bool(temp_service, passive_checks_enabled, value); temp_service->have_passive_checks_enabled = TRUE; + return xod_parse_bool(temp_service, passive_checks_enabled, value); } else if (!strcmp(variable, "parallelize_check")) { /* deprecated and was never implemented * removing it here would result in lots of @@ -7795,17 +7795,17 @@ static int xodtemplate_add_object_property(char *input) * for existing configs */ } else if (!strcmp(variable, "is_volatile")) { - return xod_parse_bool(temp_service, is_volatile, value); temp_service->have_is_volatile = TRUE; + return xod_parse_bool(temp_service, is_volatile, value); } else if (!strcmp(variable, "obsess_over_service") || !strcmp(variable, "obsess")) { - return xod_parse_bool(temp_service, obsess, value); temp_service->have_obsess = TRUE; + return xod_parse_bool(temp_service, obsess, value); } else if (!strcmp(variable, "event_handler_enabled")) { - return xod_parse_bool(temp_service, event_handler_enabled, value); temp_service->have_event_handler_enabled = TRUE; + return xod_parse_bool(temp_service, event_handler_enabled, value); } else if (!strcmp(variable, "check_freshness")) { - return xod_parse_bool(temp_service, check_freshness, value); temp_service->have_check_freshness = TRUE; + return xod_parse_bool(temp_service, check_freshness, value); } else if (!strcmp(variable, "freshness_threshold")) { temp_service->freshness_threshold = atoi(value); temp_service->have_freshness_threshold = TRUE; @@ -7816,8 +7816,8 @@ static int xodtemplate_add_object_property(char *input) temp_service->high_flap_threshold = strtod(value, NULL); temp_service->have_high_flap_threshold = TRUE; } else if (!strcmp(variable, "flap_detection_enabled")) { - return xod_parse_bool(temp_service, flap_detection_enabled, value); temp_service->have_flap_detection_enabled = TRUE; + return xod_parse_bool(temp_service, flap_detection_enabled, value); } else if (!strcmp(variable, "flap_detection_options")) { /* user is specifying something, so discard defaults... */ @@ -7867,8 +7867,8 @@ static int xodtemplate_add_object_property(char *input) } temp_service->have_notification_options = TRUE; } else if (!strcmp(variable, "notifications_enabled")) { - return xod_parse_bool(temp_service, notifications_enabled, value); temp_service->have_notifications_enabled = TRUE; + return xod_parse_bool(temp_service, notifications_enabled, value); } else if (!strcmp(variable, "notification_interval")) { temp_service->notification_interval = strtod(value, NULL); temp_service->have_notification_interval = TRUE; @@ -7896,16 +7896,16 @@ static int xodtemplate_add_object_property(char *input) } temp_service->have_stalking_options = TRUE; } else if (!strcmp(variable, "process_perf_data")) { - return xod_parse_bool(temp_service, process_perf_data, value); temp_service->have_process_perf_data = TRUE; + return xod_parse_bool(temp_service, process_perf_data, value); } else if (!strcmp(variable, "failure_prediction_enabled")) { xodtemplate_obsoleted(variable, temp_service->_start_line); } else if (!strcmp(variable, "retain_status_information")) { - return xod_parse_bool(temp_service, retain_status_information, value); temp_service->have_retain_status_information = TRUE; + return xod_parse_bool(temp_service, retain_status_information, value); } else if (!strcmp(variable, "retain_nonstatus_information")) { - return xod_parse_bool(temp_service, retain_nonstatus_information, value); temp_service->have_retain_nonstatus_information = TRUE; + return xod_parse_bool(temp_service, retain_nonstatus_information, value); } else if (!strcmp(variable, "register")) return xod_parse_bool(temp_service, register_object, value); else if (variable[0] == '_') { @@ -7984,8 +7984,8 @@ static int xodtemplate_add_object_property(char *input) } temp_hostdependency->have_dependency_period = TRUE; } else if (!strcmp(variable, "inherits_parent")) { - return xod_parse_bool(temp_hostdependency, inherits_parent, value); temp_hostdependency->have_inherits_parent = TRUE; + return xod_parse_bool(temp_hostdependency, inherits_parent, value); } else if (!strcmp(variable, "notification_failure_options") || !strcmp(variable, "notification_failure_criteria")) { temp_hostdependency->have_notification_failure_options = TRUE; for (temp_ptr = strtok(value, ", "); temp_ptr; temp_ptr = strtok(NULL, ", ")) {