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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
4c44592de21e Added mkdir_chown().
Timo Sirainen <tss@iki.fi>
parents: 8035
diff changeset
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
ed12eee73357 Added mkdir_parents_chown().
Timo Sirainen <tss@iki.fi>
parents: 8034
diff changeset
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
ed12eee73357 Added mkdir_parents_chown().
Timo Sirainen <tss@iki.fi>
parents: 8034
diff changeset
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
ed12eee73357 Added mkdir_parents_chown().
Timo Sirainen <tss@iki.fi>
parents: 8034
diff changeset
21
9417
4c44592de21e Added mkdir_chown().
Timo Sirainen <tss@iki.fi>
parents: 8035
diff changeset
22 /* Like mkdir_parents_chown(), but don't actually create any parents. */
4c44592de21e Added mkdir_chown().
Timo Sirainen <tss@iki.fi>
parents: 8035
diff changeset
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
4c44592de21e Added mkdir_chown().
Timo Sirainen <tss@iki.fi>
parents: 8035
diff changeset
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