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