Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37738348
en ru br
ALT Linux repositórios
S:4.3.30-alt2

Group :: Monitoramento
RPM: xymon

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: xymon.mkdir.patch
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));
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009