[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r37223 - gnunet/src/util
From: |
gnunet |
Subject: |
[GNUnet-SVN] r37223 - gnunet/src/util |
Date: |
Wed, 1 Jun 2016 19:08:49 +0200 |
Author: grothoff
Date: 2016-06-01 19:08:49 +0200 (Wed, 01 Jun 2016)
New Revision: 37223
Modified:
gnunet/src/util/common_logging.c
gnunet/src/util/disk.c
Log:
fix #4545: create directory for log file if it does not exist
Modified: gnunet/src/util/common_logging.c
===================================================================
--- gnunet/src/util/common_logging.c 2016-06-01 17:02:18 UTC (rev 37222)
+++ gnunet/src/util/common_logging.c 2016-06-01 17:08:49 UTC (rev 37223)
@@ -25,6 +25,7 @@
*/
#include "platform.h"
#include "gnunet_crypto_lib.h"
+#include "gnunet_disk_lib.h"
#include "gnunet_strings_lib.h"
#include <regex.h>
@@ -357,6 +358,15 @@
return GNUNET_OK; /* no change */
log_rotate (last_fn);
strcpy (last_fn, fn);
+ if (GNUNET_SYSERR ==
+ GNUNET_DISK_directory_create_for_file (fn))
+ {
+ fprintf (stderr,
+ "Failed to create directory for `%s': %s\n",
+ fn,
+ STRERROR (errno));
+ return GNUNET_SYSERR;
+ }
#if WINDOWS
altlog_fd = OPEN (fn, O_APPEND |
O_BINARY |
Modified: gnunet/src/util/disk.c
===================================================================
--- gnunet/src/util/disk.c 2016-06-01 17:02:18 UTC (rev 37222)
+++ gnunet/src/util/disk.c 2016-06-01 17:08:49 UTC (rev 37223)
@@ -814,23 +814,30 @@
char *rdir;
size_t len;
int ret;
+ int eno;
rdir = GNUNET_STRINGS_filename_expand (filename);
- if (rdir == NULL)
+ if (NULL == rdir)
+ {
+ errno = EINVAL;
return GNUNET_SYSERR;
+ }
len = strlen (rdir);
while ((len > 0) && (rdir[len] != DIR_SEPARATOR))
len--;
rdir[len] = '\0';
/* The empty path is invalid and in this case refers to / */
- if (0 == len) {
+ if (0 == len)
+ {
GNUNET_free (rdir);
rdir = GNUNET_strdup ("/");
}
ret = GNUNET_DISK_directory_create (rdir);
- if ((ret == GNUNET_OK) && (0 != ACCESS (rdir, W_OK)))
+ if ((GNUNET_OK == ret) && (0 != ACCESS (rdir, W_OK)))
ret = GNUNET_NO;
+ eno = errno;
GNUNET_free (rdir);
+ errno = eno;
return ret;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r37223 - gnunet/src/util,
gnunet <=