diff options
author | Nils Durner <durner@gnunet.org> | 2009-06-15 20:35:59 +0000 |
---|---|---|
committer | Nils Durner <durner@gnunet.org> | 2009-06-15 20:35:59 +0000 |
commit | e943ea50e768867674c4bdf05fb2b9b3e0c990ab (patch) | |
tree | 96fc94bb6406b647c14cca2c9f78603a762a2ce6 /src | |
parent | 21314229eea36c41f276f753c1cf141041405102 (diff) | |
download | gnunet-e943ea50e768867674c4bdf05fb2b9b3e0c990ab.tar.gz gnunet-e943ea50e768867674c4bdf05fb2b9b3e0c990ab.zip |
translate GNUNET_DISK_PERM_xxx
Diffstat (limited to 'src')
-rw-r--r-- | src/util/disk.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/util/disk.c b/src/util/disk.c index 45e832094..5698a8110 100644 --- a/src/util/disk.c +++ b/src/util/disk.c | |||
@@ -981,17 +981,39 @@ GNUNET_DISK_file_open (const char *fn, int flags, ...) | |||
981 | oflags |= O_TRUNC; | 981 | oflags |= O_TRUNC; |
982 | if (flags & GNUNET_DISK_OPEN_CREATE) | 982 | if (flags & GNUNET_DISK_OPEN_CREATE) |
983 | { | 983 | { |
984 | int perm; | ||
985 | |||
984 | oflags |= O_CREAT; | 986 | oflags |= O_CREAT; |
985 | 987 | ||
986 | va_list arg; | 988 | va_list arg; |
987 | va_start (arg, flags); | 989 | va_start (arg, flags); |
988 | mode = va_arg (arg, int); | 990 | perm = va_arg (arg, int); |
989 | va_end (arg); | 991 | va_end (arg); |
992 | |||
993 | mode = 0; | ||
994 | if (perm & GNUNET_DISK_PERM_USER_READ) | ||
995 | mode = S_IRUSR; | ||
996 | if (perm & GNUNET_DISK_PERM_USER_WRITE) | ||
997 | mode |= S_IWUSR; | ||
998 | if (perm & GNUNET_DISK_PERM_USER_EXEC) | ||
999 | mode |= S_IXUSR; | ||
1000 | if (perm & GNUNET_DISK_PERM_GROUP_READ) | ||
1001 | mode = S_IRGRP; | ||
1002 | if (perm & GNUNET_DISK_PERM_GROUP_WRITE) | ||
1003 | mode |= S_IWGRP; | ||
1004 | if (perm & GNUNET_DISK_PERM_GROUP_EXEC) | ||
1005 | mode |= S_IXGRP; | ||
1006 | if (perm & GNUNET_DISK_PERM_OTHER_READ) | ||
1007 | mode = S_IROTH; | ||
1008 | if (perm & GNUNET_DISK_PERM_OTHER_WRITE) | ||
1009 | mode |= S_IWOTH; | ||
1010 | if (perm & GNUNET_DISK_PERM_OTHER_EXEC) | ||
1011 | mode |= S_IXOTH; | ||
990 | } | 1012 | } |
991 | if (flags & GNUNET_DISK_OPEN_APPEND) | 1013 | if (flags & GNUNET_DISK_OPEN_APPEND) |
992 | oflags = O_APPEND; | 1014 | oflags = O_APPEND; |
993 | 1015 | ||
994 | s fd = open (expfn, oflag | O_LARGEFILE, perm, mode); | 1016 | fd = open (expfn, oflags | O_LARGEFILE, mode); |
995 | if (fd == -1) | 1017 | if (fd == -1) |
996 | { | 1018 | { |
997 | GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "open", fn); | 1019 | GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "open", fn); |