gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r8584 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r8584 - gnunet/src/util
Date: Mon, 15 Jun 2009 14:36:00 -0600

Author: durner
Date: 2009-06-15 14:35:59 -0600 (Mon, 15 Jun 2009)
New Revision: 8584

Modified:
   gnunet/src/util/disk.c
Log:
translate GNUNET_DISK_PERM_xxx

Modified: gnunet/src/util/disk.c
===================================================================
--- gnunet/src/util/disk.c      2009-06-15 20:20:34 UTC (rev 8583)
+++ gnunet/src/util/disk.c      2009-06-15 20:35:59 UTC (rev 8584)
@@ -981,17 +981,39 @@
     oflags |= O_TRUNC;
   if (flags & GNUNET_DISK_OPEN_CREATE)
     {
+      int perm;
+
       oflags |= O_CREAT;
 
       va_list arg;
       va_start (arg, flags);
-      mode = va_arg (arg, int);
+      perm = va_arg (arg, int);
       va_end (arg);
+
+      mode = 0;
+      if (perm & GNUNET_DISK_PERM_USER_READ)
+        mode = S_IRUSR;
+      if (perm & GNUNET_DISK_PERM_USER_WRITE)
+        mode |= S_IWUSR;
+      if (perm & GNUNET_DISK_PERM_USER_EXEC)
+        mode |= S_IXUSR;
+      if (perm & GNUNET_DISK_PERM_GROUP_READ)
+        mode = S_IRGRP;
+      if (perm & GNUNET_DISK_PERM_GROUP_WRITE)
+        mode |= S_IWGRP;
+      if (perm & GNUNET_DISK_PERM_GROUP_EXEC)
+        mode |= S_IXGRP;
+      if (perm & GNUNET_DISK_PERM_OTHER_READ)
+        mode = S_IROTH;
+      if (perm & GNUNET_DISK_PERM_OTHER_WRITE)
+        mode |= S_IWOTH;
+      if (perm & GNUNET_DISK_PERM_OTHER_EXEC)
+        mode |= S_IXOTH;
     }
   if (flags & GNUNET_DISK_OPEN_APPEND)
     oflags = O_APPEND;
 
-s  fd = open (expfn, oflag | O_LARGEFILE, perm, mode);
+  fd = open (expfn, oflags | O_LARGEFILE, mode);
   if (fd == -1)
   {
     GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "open", fn);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]