[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