util-lib: split out umask-related code to umask-util.h
authorLennart Poettering <lennart@poettering.net>
Mon, 26 Oct 2015 22:20:41 +0000 (23:20 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 27 Oct 2015 12:25:56 +0000 (13:25 +0100)
13 files changed:
Makefile.am
src/basic/copy.c
src/basic/fileio.c
src/basic/umask-util.h [new file with mode: 0644]
src/basic/util.h
src/core/machine-id-setup.c
src/core/manager.c
src/core/namespace.c
src/firstboot/firstboot.c
src/nspawn/nspawn.c
src/shared/ask-password-api.c
src/shared/base-filesystem.c
src/tmpfiles/tmpfiles.c

index 56715f6..dada6cd 100644 (file)
@@ -821,6 +821,7 @@ libbasic_la_SOURCES = \
        src/basic/time-util.h \
        src/basic/locale-util.c \
        src/basic/locale-util.h \
+       src/basic/umask-util.h \
        src/basic/signal-util.c \
        src/basic/signal-util.h \
        src/basic/string-table.c \
index f1413f7..a3a4099 100644 (file)
@@ -32,6 +32,7 @@
 #include "io-util.h"
 #include "string-util.h"
 #include "strv.h"
+#include "umask-util.h"
 #include "util.h"
 #include "xattr-util.h"
 
index 2c4d70a..3dfd3af 100644 (file)
@@ -31,6 +31,7 @@
 #include "random-util.h"
 #include "string-util.h"
 #include "strv.h"
+#include "umask-util.h"
 #include "utf8.h"
 #include "util.h"
 
diff --git a/src/basic/umask-util.h b/src/basic/umask-util.h
new file mode 100644 (file)
index 0000000..8ed3465
--- /dev/null
@@ -0,0 +1,48 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+  This file is part of systemd.
+
+  Copyright 2010 Lennart Poettering
+
+  systemd is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
+  (at your option) any later version.
+
+  systemd is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <stdbool.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "macro.h"
+
+static inline void umaskp(mode_t *u) {
+        umask(*u);
+}
+
+#define _cleanup_umask_ _cleanup_(umaskp)
+
+struct _umask_struct_ {
+        mode_t mask;
+        bool quit;
+};
+
+static inline void _reset_umask_(struct _umask_struct_ *s) {
+        umask(s->mask);
+};
+
+#define RUN_WITH_UMASK(mask)                                            \
+        for (_cleanup_(_reset_umask_) struct _umask_struct_ _saved_umask_ = { umask(mask), false }; \
+             !_saved_umask_.quit ;                                      \
+             _saved_umask_.quit = true)
index 6803179..e356f59 100644 (file)
@@ -152,12 +152,7 @@ static inline void freep(void *p) {
         free(*(void**) p);
 }
 
-static inline void umaskp(mode_t *u) {
-        umask(*u);
-}
-
 #define _cleanup_free_ _cleanup_(freep)
-#define _cleanup_umask_ _cleanup_(umaskp)
 #define _cleanup_globfree_ _cleanup_(globfree)
 
 _malloc_  _alloc_(1, 2) static inline void *malloc_multiply(size_t a, size_t b) {
@@ -222,20 +217,6 @@ static inline int negative_errno(void) {
         return -errno;
 }
 
-struct _umask_struct_ {
-        mode_t mask;
-        bool quit;
-};
-
-static inline void _reset_umask_(struct _umask_struct_ *s) {
-        umask(s->mask);
-};
-
-#define RUN_WITH_UMASK(mask)                                            \
-        for (_cleanup_(_reset_umask_) struct _umask_struct_ _saved_umask_ = { umask(mask), false }; \
-             !_saved_umask_.quit ;                                      \
-             _saved_umask_.quit = true)
-
 static inline unsigned u64log2(uint64_t n) {
 #if __SIZEOF_LONG_LONG__ == 8
         return (n > 1) ? (unsigned) __builtin_clzll(n) ^ 63U : 0;
index d9611ab..d00d3e9 100644 (file)
@@ -43,6 +43,7 @@
 #include "process-util.h"
 #include "stat-util.h"
 #include "string-util.h"
+#include "umask-util.h"
 #include "util.h"
 #include "virt.h"
 
index 83068af..bf0cf06 100644 (file)
@@ -79,6 +79,7 @@
 #include "terminal-util.h"
 #include "time-util.h"
 #include "transaction.h"
+#include "umask-util.h"
 #include "unit-name.h"
 #include "util.h"
 #include "virt.h"
index ec7180e..65cf140 100644 (file)
@@ -41,6 +41,7 @@
 #include "string-table.h"
 #include "string-util.h"
 #include "strv.h"
+#include "umask-util.h"
 #include "util.h"
 
 typedef enum MountMode {
index 8faed59..30ea942 100644 (file)
@@ -39,6 +39,7 @@
 #include "strv.h"
 #include "terminal-util.h"
 #include "time-util.h"
+#include "umask-util.h"
 #include "user-util.h"
 
 static char *arg_root = NULL;
index 152846b..4e9ac04 100644 (file)
@@ -95,6 +95,7 @@
 #include "strv.h"
 #include "terminal-util.h"
 #include "udev-util.h"
+#include "umask-util.h"
 #include "user-util.h"
 #include "util.h"
 
index 9e8025d..b2dbf98 100644 (file)
@@ -45,6 +45,7 @@
 #include "string-util.h"
 #include "strv.h"
 #include "terminal-util.h"
+#include "umask-util.h"
 #include "util.h"
 
 #define KEYRING_TIMEOUT_USEC ((5 * USEC_PER_MINUTE) / 2)
index 751dfde..9ccf265 100644 (file)
 #include <sys/stat.h>
 #include <unistd.h>
 
+#include "base-filesystem.h"
+#include "fd-util.h"
 #include "log.h"
 #include "macro.h"
 #include "string-util.h"
+#include "umask-util.h"
 #include "util.h"
-#include "base-filesystem.h"
-#include "fd-util.h"
 
 typedef struct BaseFilesystem {
         const char *dir;
index 9440ce7..9ac10db 100644 (file)
@@ -65,6 +65,7 @@
 #include "string-table.h"
 #include "string-util.h"
 #include "strv.h"
+#include "umask-util.h"
 #include "user-util.h"
 #include "util.h"