chiark / gitweb /
treewide: no need to negate errno for log_*_errno()
[elogind.git] / src / tmpfiles / tmpfiles.c
index dafb9aee2f7e56be1c3a94d90c99206731d45822..34a644b26ba0e7ec36cd1c1b9656b5ded5108efd 100644 (file)
@@ -117,15 +117,7 @@ static char **arg_include_prefixes = NULL;
 static char **arg_exclude_prefixes = NULL;
 static char *arg_root = NULL;
 
-static const char conf_file_dirs[] =
-        "/etc/tmpfiles.d\0"
-        "/run/tmpfiles.d\0"
-        "/usr/local/lib/tmpfiles.d\0"
-        "/usr/lib/tmpfiles.d\0"
-#ifdef HAVE_SPLIT_USR
-        "/lib/tmpfiles.d\0"
-#endif
-        ;
+static const char conf_file_dirs[] = CONF_DIRS_NULSTR("tmpfiles");
 
 #define MAX_DEPTH 256
 
@@ -259,7 +251,7 @@ static int dir_is_mount_point(DIR *d, const char *subdir) {
 
         /* got only one handle; assume different mount points if one
          * of both queries was not supported by the filesystem */
-        if (r_p == -ENOSYS || r_p == -ENOTSUP || r == -ENOSYS || r == -ENOTSUP)
+        if (r_p == -ENOSYS || r_p == -EOPNOTSUPP || r == -ENOSYS || r == -EOPNOTSUPP)
                 return true;
 
         /* return error */
@@ -509,9 +501,9 @@ static int write_one_file(Item *i, const char *path) {
                 i->type == TRUNCATE_FILE ? O_CREAT|O_TRUNC|O_NOFOLLOW : 0;
 
         RUN_WITH_UMASK(0000) {
-                label_context_set(path, S_IFREG);
+                mac_selinux_create_file_prepare(path, S_IFREG);
                 fd = open(path, flags|O_NDELAY|O_CLOEXEC|O_WRONLY|O_NOCTTY, i->mode);
-                label_context_clear();
+                mac_selinux_create_file_clear();
         }
 
         if (fd < 0) {
@@ -676,7 +668,7 @@ static int create_item(Item *i) {
                         struct stat a, b;
 
                         if (r != -EEXIST) {
-                                log_error("Failed to copy files to %s: %s", i->path, strerror(-r));
+                                log_error_errno(r, "Failed to copy files to %s: %m", i->path);
                                 return -r;
                         }
 
@@ -719,7 +711,7 @@ static int create_item(Item *i) {
 
                 if (r < 0) {
                         if (r != -EEXIST) {
-                                log_error("Failed to create directory %s: %s", i->path, strerror(-r));
+                                log_error_errno(r, "Failed to create directory %s: %m", i->path);
                                 return r;
                         }
 
@@ -743,9 +735,9 @@ static int create_item(Item *i) {
         case CREATE_FIFO:
 
                 RUN_WITH_UMASK(0000) {
-                        label_context_set(i->path, S_IFIFO);
+                        mac_selinux_create_file_prepare(i->path, S_IFIFO);
                         r = mkfifo(i->path, i->mode);
-                        label_context_clear();
+                        mac_selinux_create_file_clear();
                 }
 
                 if (r < 0) {
@@ -764,13 +756,13 @@ static int create_item(Item *i) {
                                 if (i->force) {
 
                                         RUN_WITH_UMASK(0000) {
-                                                label_context_set(i->path, S_IFIFO);
+                                                mac_selinux_create_file_prepare(i->path, S_IFIFO);
                                                 r = mkfifo_atomic(i->path, i->mode);
-                                                label_context_clear();
+                                                mac_selinux_create_file_clear();
                                         }
 
                                         if (r < 0) {
-                                                log_error("Failed to create fifo %s: %s", i->path, strerror(-r));
+                                                log_error_errno(r, "Failed to create fifo %s: %m", i->path);
                                                 return r;
                                         }
                                 } else {
@@ -788,9 +780,9 @@ static int create_item(Item *i) {
 
         case CREATE_SYMLINK:
 
-                label_context_set(i->path, S_IFLNK);
+                mac_selinux_create_file_prepare(i->path, S_IFLNK);
                 r = symlink(i->argument, i->path);
-                label_context_clear();
+                mac_selinux_create_file_clear();
 
                 if (r < 0) {
                         _cleanup_free_ char *x = NULL;
@@ -804,12 +796,12 @@ static int create_item(Item *i) {
                         if (r < 0 || !streq(i->argument, x)) {
 
                                 if (i->force) {
-                                        label_context_set(i->path, S_IFLNK);
+                                        mac_selinux_create_file_prepare(i->path, S_IFLNK);
                                         r = symlink_atomic(i->argument, i->path);
-                                        label_context_clear();
+                                        mac_selinux_create_file_clear();
 
                                         if (r < 0) {
-                                                log_error("symlink(%s, %s) failed: %s", i->argument, i->path, strerror(-r));
+                                                log_error_errno(r, "symlink(%s, %s) failed: %m", i->argument, i->path);
                                                 return r;
                                         }
                                 } else {
@@ -838,9 +830,9 @@ static int create_item(Item *i) {
                 file_type = i->type == CREATE_BLOCK_DEVICE ? S_IFBLK : S_IFCHR;
 
                 RUN_WITH_UMASK(0000) {
-                        label_context_set(i->path, file_type);
+                        mac_selinux_create_file_prepare(i->path, file_type);
                         r = mknod(i->path, i->mode | file_type, i->major_minor);
-                        label_context_clear();
+                        mac_selinux_create_file_clear();
                 }
 
                 if (r < 0) {
@@ -865,13 +857,13 @@ static int create_item(Item *i) {
                                 if (i->force) {
 
                                         RUN_WITH_UMASK(0000) {
-                                                label_context_set(i->path, file_type);
+                                                mac_selinux_create_file_prepare(i->path, file_type);
                                                 r = mknod_atomic(i->path, i->mode | file_type, i->major_minor);
-                                                label_context_clear();
+                                                mac_selinux_create_file_clear();
                                         }
 
                                         if (r < 0) {
-                                                log_error("Failed to create device node %s: %s", i->path, strerror(-r));
+                                                log_error_errno(r, "Failed to create device node %s: %m", i->path);
                                                 return r;
                                         }
                                 } else {
@@ -947,7 +939,7 @@ static int remove_item_instance(Item *i, const char *instance) {
                  * instead of rm_rf() so that 'x' is honoured. */
                 r = rm_rf_dangerous(instance, false, i->type == RECURSIVE_REMOVE_PATH, false);
                 if (r < 0 && r != -ENOENT) {
-                        log_error("rm_rf(%s): %s", instance, strerror(-r));
+                        log_error_errno(r, "rm_rf(%s): %m", instance);
                         return r;
                 }
 
@@ -1406,7 +1398,7 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
 
         r = hashmap_put(h, i->path, i);
         if (r < 0) {
-                log_error("Failed to insert item %s: %s", i->path, strerror(-r));
+                log_error_errno(r, "Failed to insert item %s: %m", i->path);
                 return r;
         }
 
@@ -1539,7 +1531,7 @@ static int read_config_file(const char *fn, bool ignore_enoent) {
                 if (ignore_enoent && r == -ENOENT)
                         return 0;
 
-                log_error("Failed to open '%s', ignoring: %s", fn, strerror(-r));
+                log_error_errno(r, "Failed to open '%s', ignoring: %m", fn);
                 return r;
         }
 
@@ -1610,7 +1602,7 @@ int main(int argc, char *argv[]) {
 
         umask(0022);
 
-        label_init(NULL);
+        mac_selinux_init(NULL);
 
         items = hashmap_new(&string_hash_ops);
         globs = hashmap_new(&string_hash_ops);
@@ -1637,7 +1629,7 @@ int main(int argc, char *argv[]) {
 
                 r = conf_files_list_nulstr(&files, ".conf", arg_root, conf_file_dirs);
                 if (r < 0) {
-                        log_error("Failed to enumerate tmpfiles.d files: %s", strerror(-r));
+                        log_error_errno(r, "Failed to enumerate tmpfiles.d files: %m");
                         goto finish;
                 }
 
@@ -1670,7 +1662,7 @@ finish:
 
         set_free_free(unix_sockets);
 
-        label_finish();
+        mac_selinux_finish();
 
         return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
 }