[Nagiosplug-checkins] nagiosplug/plugins urlize.c,1.17,1.18
Harper Mann
harpermann at users.sourceforge.net
Wed Dec 7 11:33:12 CET 2005
Update of /cvsroot/nagiosplug/nagiosplug/plugins
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19141
Modified Files:
urlize.c
Log Message:
Nagiosplug bug 1266977. Added code to insert the closing </A> after the plugin output but before the performance output.
Index: urlize.c
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/plugins/urlize.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- urlize.c 25 Dec 2004 23:17:44 -0000 1.17
+++ urlize.c 7 Dec 2005 19:32:37 -0000 1.18
@@ -27,6 +27,9 @@
#include "utils.h"
#include "popen.h"
+#define PERF_CHARACTER "|"
+#define NEWLINE_CHARACTER '\n'
+
void print_help (void);
void print_usage (void);
@@ -37,6 +40,8 @@
char *url = NULL;
char *cmd;
char *buf;
+ char *nstr;
+ char tstr[MAX_INPUT_BUFFER];
int c;
int option = 0;
@@ -53,7 +58,7 @@
while (1) {
c = getopt_long (argc, argv, "+hVu:", longopts, &option);
-
+
if (c == -1 || c == EOF)
break;
@@ -94,11 +99,13 @@
printf (_("Could not open stderr for %s\n"), cmd);
}
+ bzero(tstr, sizeof(tstr));
buf = malloc(MAX_INPUT_BUFFER);
printf ("<A href=\"%s\">", argv[1]);
while (fgets (buf, MAX_INPUT_BUFFER - 1, child_process)) {
found++;
- printf ("%s", buf);
+ /* Collect the string in temp str so we can tokenize */
+ strcat(tstr, buf);
}
if (!found)
@@ -106,6 +113,19 @@
_("%s UNKNOWN - No data received from host\nCMD: %s</A>\n"),
argv[0], cmd);
+
+ /* chop the newline character */
+ if ((nstr = strchr(tstr, NEWLINE_CHARACTER)) != NULL)
+ *nstr = '\0';
+
+ /* tokenize the string for Perfdata if there is some */
+ nstr = strtok(tstr, PERF_CHARACTER);
+ printf ("%s", nstr);
+ printf ("</A>");
+ nstr = strtok(NULL, PERF_CHARACTER);
+ if (nstr != NULL)
+ printf (" | %s", nstr);
+
/* close the pipe */
result = spclose (child_process);
@@ -116,7 +136,6 @@
/* close stderr */
(void) fclose (child_stderr);
- printf ("</A>\n");
return result;
}
More information about the Commits
mailing list