[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r24828 - gnunet/src/util
From: |
gnunet |
Subject: |
[GNUnet-SVN] r24828 - gnunet/src/util |
Date: |
Wed, 7 Nov 2012 19:43:26 +0100 |
Author: harsha
Date: 2012-11-07 19:43:26 +0100 (Wed, 07 Nov 2012)
New Revision: 24828
Modified:
gnunet/src/util/disk.c
Log:
-adding rever order checking of directories
Modified: gnunet/src/util/disk.c
===================================================================
--- gnunet/src/util/disk.c 2012-11-07 18:26:52 UTC (rev 24827)
+++ gnunet/src/util/disk.c 2012-11-07 18:43:26 UTC (rev 24828)
@@ -683,8 +683,9 @@
GNUNET_DISK_directory_create (const char *dir)
{
char *rdir;
- int len;
- int pos;
+ unsigned int len;
+ unsigned int pos;
+ unsigned int pos2;
int ret = GNUNET_OK;
rdir = GNUNET_STRINGS_filename_expand (dir);
@@ -714,6 +715,33 @@
pos = 3; /* strlen("C:\\") */
}
#endif
+ /* Check which low level directories already exist */
+ pos2 = len;
+ rdir[len] = DIR_SEPARATOR;
+ while (pos <= pos2)
+ {
+ if (DIR_SEPARATOR == rdir[pos2])
+ {
+ rdir[pos2] = '\0';
+ ret = GNUNET_DISK_directory_test (rdir, GNUNET_NO);
+ if (GNUNET_NO == ret)
+ {
+ GNUNET_free (rdir);
+ return GNUNET_SYSERR;
+ }
+ rdir[pos2] = DIR_SEPARATOR;
+ if (GNUNET_YES == ret)
+ {
+ pos2++;
+ break;
+ }
+ }
+ pos2--;
+ }
+ rdir[len] = '\0';
+ if (pos < pos2)
+ pos = pos2;
+ /* Start creating directories */
while (pos <= len)
{
if ((rdir[pos] == DIR_SEPARATOR) || (pos == len))
@@ -748,7 +776,6 @@
pos++;
}
GNUNET_free (rdir);
- LOG (GNUNET_ERROR_TYPE_ERROR, "we are done here\n");
return GNUNET_OK;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r24828 - gnunet/src/util,
gnunet <=