[Nagios-devel] [PATCH] commands: Keep return values around for

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
Locked
Guest

[Nagios-devel] [PATCH] commands: Keep return values around for

Post by Guest »

This patch does not significantly alter program flow. It simply allows us
to log errors encountered from attempted execution of external commands,
which presumably is a good thing.

Signed-off-by: Anton Lofgren
---
base/commands.c | 69 +++++++++++++++++++++++++++++++--------------------------
1 file changed, 37 insertions(+), 32 deletions(-)

diff --git a/base/commands.c b/base/commands.c
index d0f65f7..363fc06 100644
--- a/base/commands.c
+++ b/base/commands.c
@@ -359,6 +359,7 @@ int process_external_command1(char *cmd) {
time_t entry_time = 0L;
int command_type = CMD_NONE;
char *temp_ptr = NULL;
+ int external_command_ret = OK;

log_debug_info(DEBUGL_FUNCTIONS, 0, "process_external_command1()\n");

@@ -877,7 +878,10 @@ int process_external_command1(char *cmd) {
#endif

/* process the command */
- process_external_command2(command_type, entry_time, args);
+ if ((external_command_ret = process_external_command2(command_type,
entry_time, args)) != OK) {
+ logit(NSLOG_EXTERNAL_COMMAND | NSLOG_RUNTIME_WARNING, TRUE, "Error:
External command failed -> %s;%s\n", command_id, args);
+ }
+

#ifdef USE_EVENT_BROKER
/* send data to event broker */
@@ -888,7 +892,7 @@ int process_external_command1(char *cmd) {
my_free(command_id);
my_free(args);

- return OK;
+ return external_command_ret;
}


@@ -896,6 +900,7 @@ int process_external_command1(char *cmd) {
/* top-level processor for a single external command */
int process_external_command2(int cmd, time_t entry_time, char *args) {

+ int ret = OK;
log_debug_info(DEBUGL_FUNCTIONS, 0, "process_external_command2()\n");

log_debug_info(DEBUGL_EXTERNALCOMMANDS, 1, "External Command Type:
%d\n", cmd);
@@ -911,15 +916,15 @@ int process_external_command2(int cmd, time_t
entry_time, char *args) {

case CMD_SHUTDOWN_PROCESS:
case CMD_RESTART_PROCESS:
- cmd_signal_process(cmd, args);
+ ret = cmd_signal_process(cmd, args);
break;

case CMD_SAVE_STATE_INFORMATION:
- save_state_information(FALSE);
+ ret = save_state_information(FALSE);
break;

case CMD_READ_STATE_INFORMATION:
- read_initial_state_information();
+ ret = read_initial_state_information();
break;

case CMD_ENABLE_NOTIFICATIONS:
@@ -1045,7 +1050,7 @@ int process_external_command2(int cmd, time_t
entry_time, char *args) {
case CMD_STOP_OBSESSING_OVER_HOST:
case CMD_SET_HOST_NOTIFICATION_NUMBER:
case CMD_SEND_CUSTOM_HOST_NOTIFICATION:
- process_host_command(cmd, entry_time, args);
+ ret = process_host_command(cmd, entry_time, args);
break;


@@ -1065,7 +1070,7 @@ int process_external_command2(int cmd, time_t
entry_time, char *args) {
case CMD_DISABLE_HOSTGROUP_SVC_CHECKS:
case CMD_ENABLE_HOSTGROUP_PASSIVE_SVC_CHECKS:
case CMD_DISABLE_HOSTGROUP_PASSIVE_SVC_CHECKS:
- process_hostgroup_command(cmd, entry_time, args);
+ ret = process_hostgroup_command(cmd, entry_time, args);
break;


@@ -1087,7 +1092,7 @@ int process_external_command2(int cmd, time_t
entry_time, char *args) {
case CMD_STOP_OBSESSING_OVER_SVC:
case CMD_SET_SVC_NOTIFICATION_NUMBER:
case CMD_SEND_CUSTOM_SVC_NOTIFICATION:
- process_service_command(cmd, entry_time, args);
+ ret = process_service_command(cmd, entry_time, args);
break;


@@ -1107,7 +1112,7 @@ int process_external_command2(int cmd, time_t
entry_time, char *args) {
case CMD_DISABLE_SERVICEGROUP_SVC_CHECKS:
case CMD_ENABLE_SERVICEGROUP_PASSIVE_SVC_CHECKS:
case CMD_DISABLE_SERVICEGROUP_PASSIVE_SVC_CHECKS:
- process_servicegroup_command(cmd, entry_time, args);
+ ret = process_servicegroup_command(cmd, entry_time, args);
break;


@@ -1119,7 +1124,7 @@ int process_external_command2(int cmd, time_t
entry_time, char *args) {
case CMD_DISABLE_CONTACT_HOST_NOTIFICATIONS:
case CMD_ENABLE_CONTACT_SVC_NOTIFICATIONS:
case CMD_DISABLE_CONTACT_SVC_NOTIFICATIONS:
- process_contact_command(cmd, entry_time, args);
+ ret = process_contact_command(cmd, entry_time, args);
break;


@@ -1131,7 +1136,7 @@ int process_external_command2(int cmd, time_t
entry_time, char *args) {
case CMD_DISABLE_CONTACTGROUP_HOST_NOTIFICATIONS:
case CMD_ENABLE_CONTACTGROUP_SVC_NOTIFICATIONS:
case CMD_DISABLE_CONTACTGROUP_SVC_NOTIFICATIONS:

...[email truncated]...


This post was automatically imported from historical nagios-devel mailing list archives
Original poster: alofgren@op5.com
Locked