Mercurial > dovecot > core-2.2
annotate src/lib/mkdir-parents.h @ 22664:fea53c2725c0
director: Fix director_max_parallel_moves/kicks type
Should be uint, not time.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 09 Nov 2017 12:24:16 +0200 |
parents | 13e74bd5ac8c |
children |
rev | line source |
---|---|
6410
e4eb71ae8e96
Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents:
1483
diff
changeset
|
1 #ifndef MKDIR_PARENTS_H |
e4eb71ae8e96
Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents:
1483
diff
changeset
|
2 #define MKDIR_PARENTS_H |
1483
836c952e17ec
More robust error handling for mbox.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 |
15555
40f9e2e339a6
Added stat_first_parent() helper function.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
4 #include <sys/stat.h> |
40f9e2e339a6
Added stat_first_parent() helper function.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
5 |
8034
b3efdd9dc293
mkdir_parents() API was sometimes assumed to return EEXIST and sometimes not.
Timo Sirainen <tss@iki.fi>
parents:
6410
diff
changeset
|
6 /* Create path and all the directories under it if needed. Permissions for |
b3efdd9dc293
mkdir_parents() API was sometimes assumed to return EEXIST and sometimes not.
Timo Sirainen <tss@iki.fi>
parents:
6410
diff
changeset
|
7 existing directories isn't changed. Returns 0 if ok. If directory already |
9417 | 8 exists, returns -1 with errno=EEXIST. */ |
1483
836c952e17ec
More robust error handling for mbox.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
9 int mkdir_parents(const char *path, mode_t mode); |
836c952e17ec
More robust error handling for mbox.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
10 |
8035 | 11 /* Like mkdir_parents(), but use the given uid/gid for newly created |
9537
b373de4973cd
Whenever file's group changing fails, show the group origin in the error message.
Timo Sirainen <tss@iki.fi>
parents:
9417
diff
changeset
|
12 directories. (uid_t)-1 or (gid_t)-1 can be used to indicate that it |
15252
a7f95f182560
mkdir_parents_chown(): If gid is set, make sure setgid-bit isn't copied from parent.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
13 doesn't need to be changed. If gid isn't (gid_t)-1 and the parent directory |
a7f95f182560
mkdir_parents_chown(): If gid is set, make sure setgid-bit isn't copied from parent.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
14 had setgid-bit enabled, it's removed unless explicitly included in the |
a7f95f182560
mkdir_parents_chown(): If gid is set, make sure setgid-bit isn't copied from parent.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
15 mode. */ |
8035 | 16 int mkdir_parents_chown(const char *path, mode_t mode, uid_t uid, gid_t gid); |
9537
b373de4973cd
Whenever file's group changing fails, show the group origin in the error message.
Timo Sirainen <tss@iki.fi>
parents:
9417
diff
changeset
|
17 /* Like mkdir_parents_chown(), but change only group. If chown() fails with |
b373de4973cd
Whenever file's group changing fails, show the group origin in the error message.
Timo Sirainen <tss@iki.fi>
parents:
9417
diff
changeset
|
18 EACCES, use gid_origin in the error message. */ |
b373de4973cd
Whenever file's group changing fails, show the group origin in the error message.
Timo Sirainen <tss@iki.fi>
parents:
9417
diff
changeset
|
19 int mkdir_parents_chgrp(const char *path, mode_t mode, |
b373de4973cd
Whenever file's group changing fails, show the group origin in the error message.
Timo Sirainen <tss@iki.fi>
parents:
9417
diff
changeset
|
20 gid_t gid, const char *gid_origin); |
8035 | 21 |
9417 | 22 /* Like mkdir_parents_chown(), but don't actually create any parents. */ |
23 int mkdir_chown(const char *path, mode_t mode, uid_t uid, gid_t gid); | |
9537
b373de4973cd
Whenever file's group changing fails, show the group origin in the error message.
Timo Sirainen <tss@iki.fi>
parents:
9417
diff
changeset
|
24 int mkdir_chgrp(const char *path, mode_t mode, |
b373de4973cd
Whenever file's group changing fails, show the group origin in the error message.
Timo Sirainen <tss@iki.fi>
parents:
9417
diff
changeset
|
25 gid_t gid, const char *gid_origin); |
9417 | 26 |
15555
40f9e2e339a6
Added stat_first_parent() helper function.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
27 /* stat() the path or its first parent that exists. Returns 0 if ok, -1 if |
40f9e2e339a6
Added stat_first_parent() helper function.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
28 failed. root_dir is set to the last stat()ed directory (on success and |
40f9e2e339a6
Added stat_first_parent() helper function.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
29 on failure). */ |
40f9e2e339a6
Added stat_first_parent() helper function.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
30 int stat_first_parent(const char *path, const char **root_dir_r, |
40f9e2e339a6
Added stat_first_parent() helper function.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
31 struct stat *st_r); |
40f9e2e339a6
Added stat_first_parent() helper function.
Timo Sirainen <tss@iki.fi>
parents:
9537
diff
changeset
|
32 |
1483
836c952e17ec
More robust error handling for mbox.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
33 #endif |