From 990a0dd8e57f621afe31ca2f78fc3d7ab14e750a Mon Sep 17 00:00:00 2001 From: Dmitry Sivachenko Date: Mon, 20 Jun 2005 05:48:16 +0000 Subject: Fix check_nagios plugin to work with nagios-2.x. The format of status file changed a lot since nagios-1.x, so we just check that mtime is fresh enough. Reviewed by: maintainer --- net-mgmt/nagios-plugins/files/patch-check_nagios.c | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 net-mgmt/nagios-plugins/files/patch-check_nagios.c (limited to 'net-mgmt/nagios-plugins/files/patch-check_nagios.c') diff --git a/net-mgmt/nagios-plugins/files/patch-check_nagios.c b/net-mgmt/nagios-plugins/files/patch-check_nagios.c new file mode 100644 index 000000000000..9413d92dabd7 --- /dev/null +++ b/net-mgmt/nagios-plugins/files/patch-check_nagios.c @@ -0,0 +1,53 @@ +--- plugins/check_nagios.c.orig Sun Jun 19 09:51:52 2005 ++++ plugins/check_nagios.c Sun Jun 19 09:53:28 2005 +@@ -26,6 +26,8 @@ + #include "common.h" + #include "popen.h" + #include "utils.h" ++#include ++#include + + int process_arguments (int, char **); + void print_help (void); +@@ -42,12 +44,12 @@ + { + int result = STATE_UNKNOWN; + char input_buffer[MAX_INPUT_BUFFER]; +- unsigned long latest_entry_time = 0L; +- unsigned long temp_entry_time = 0L; ++ unsigned long latest_entry_time; + int proc_entries = 0; + time_t current_time; + char *temp_ptr; +- FILE *fp; ++ struct stat sb; ++ int err; + int procuid = 0; + int procppid = 0; + int procvsz = 0; +@@ -78,21 +80,14 @@ + alarm (timeout_interval); + + /* open the status log */ +- fp = fopen (status_log, "r"); +- if (fp == NULL) { +- printf (_("CRITICAL - Cannot open status log for reading!\n")); ++ err = stat(status_log, &sb); ++ if (err) { ++ printf (_("CRITICAL - Cannot get modification time of status log!\n")); + return STATE_CRITICAL; + } + + /* get the date/time of the last item updated in the log */ +- while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, fp)) { +- temp_ptr = strtok (input_buffer, "]"); +- temp_entry_time = +- (temp_ptr == NULL) ? 0L : strtoul (temp_ptr + 1, NULL, 10); +- if (temp_entry_time > latest_entry_time) +- latest_entry_time = temp_entry_time; +- } +- fclose (fp); ++ latest_entry_time = sb.st_mtime; + + if (verbose >= 2) + printf(_("command: %s\n"), PS_COMMAND); -- cgit v1.2.3