Group :: Monitoramento
RPM: xymon
Main Changelog Spec Patches Sources Download Gear Bugs e FR Repocop
Patch: xymon.mkdir.patch
Download
Download
--- web/snapshot.c.mkdir 2012-04-26 12:40:43.399110703 -0700
+++ web/snapshot.c 2012-04-26 13:41:58.914792167 -0700
@@ -197,7 +197,10 @@
sprintf(dirid, "%lu-%u", (unsigned long)getpid(), (unsigned int)getcurrenttime(NULL));
sprintf(outdir, "%s/%s", xgetenv("XYMONSNAPDIR"), dirid);
- if (mkdir(outdir, 0755) == -1) errormsg("Cannot create output directory");
+ if (mkdir(outdir, 0755) == -1) {
+ if (xgetenv("XYMONSNAPDIR") && mkdir(xgetenv("XYMONSNAPDIR"), 0755) != -1) dbgprintf("Created %s\n", xgetenv("XYMONSNAPDIR"));
+ if (mkdir(outdir, 0755) == -1) errormsg("Cannot create output directory");
+ }
sprintf(xymonwebenv, "XYMONWEB=%s/%s", xgetenv("XYMONSNAPURL"), dirid);
putenv(xymonwebenv);
--- web/report.c.mkdir 2012-04-26 12:40:43.379111475 -0700
+++ web/report.c 2012-04-26 14:31:16.366778244 -0700
@@ -258,5 +258,8 @@
if (!csvoutput) {
sprintf(outdir, "%s/%s", xgetenv("XYMONREPDIR"), dirid);
- mkdir(outdir, 0755);
+ if (mkdir(outdir, 0755) == -1) {
+ if (xgetenv("XYMONREPDIR") && mkdir(xgetenv("XYMONREPDIR"), 0755) != -1) dbgprintf("Created %s\n", xgetenv("XYMONREPDIR"));
+ if (mkdir(outdir, 0755) == -1) errormsg("Cannot create output directory");
+ }
xymongen_argv[newargi++] = outdir;
sprintf(xymonwebenv, "XYMONWEB=%s/%s", xgetenv("XYMONREPURL"), dirid);
@@ -265,4 +265,5 @@
else {
sprintf(outdir, "--csv=%s/%s.csv", xgetenv("XYMONREPDIR"), dirid);
+ if (xgetenv("XYMONREPDIR")) mkdir(xgetenv("XYMONREPDIR"), 0755); // superfluous, but handled here
xymongen_argv[newargi++] = outdir;
sprintf(csvdelimopt, "--csvdelim=%c", csvdelim);
--- xymond/xymond_filestore.c.mkdir 2012-04-27 00:55:10.085724395 -0700
+++ xymond/xymond_filestore.c 2012-04-27 02:35:39.092696166 -0700
@@ -18,2 +18,3 @@
+#include <sys/stat.h>
#include <stdio.h>
@@ -57,6 +57,11 @@
}
logfd = fopen(tmpfn, mode);
+ if (!logfd) {
+ errprintf("Could not open '%s' as '%s', mode %s: %s\n", fn, tmpfn, mode, strerror(errno));
+ MEMUNDEFINE(tmpfn);
+ return;
+ }
fwrite(msg, strlen(msg), 1, logfd);
if (sender) fprintf(logfd, "\n\nMessage received from %s\n", sender);
if (timesincechange >= 0) {
@@ -254,6 +259,8 @@
errprintf("No directory given, aborting\n");
return 1;
}
+ if (filedir && mkdir(filedir, 0755) != -1) dbgprintf("Created %s\n", filedir);
+ if (htmldir && mkdir(htmldir, 0755) != -1) dbgprintf("Created %s\n", htmldir);
/* For picking up lost children */
setup_signalhandler("xymond_filestore");
@@ -361,1 +361,1 @@
- sprintf(logfn, "%s/%s", basename(filedir), hostname);
+ sprintf(logfn, "%s/%s", filedir, basename(hostname));