summaryrefslogtreecommitdiff
path: root/src/login/user-runtime-dir.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2018-11-16 14:42:39 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2018-11-17 09:13:35 +0100
commitcc639ee79d839055be463e929542c48a29a222f3 (patch)
treeb1a63aad7d9af5cb32058e0fd8310764cb05bd37 /src/login/user-runtime-dir.c
parentc11cfa286557c9476fdf371bff1e5ac09d7d6dbc (diff)
downloadsystemd-cc639ee79d839055be463e929542c48a29a222f3.tar.gz
user-runtime-dir: define main through macro
Diffstat (limited to 'src/login/user-runtime-dir.c')
-rw-r--r--src/login/user-runtime-dir.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/login/user-runtime-dir.c b/src/login/user-runtime-dir.c
index a149e96b26..b3a6e5c740 100644
--- a/src/login/user-runtime-dir.c
+++ b/src/login/user-runtime-dir.c
@@ -168,7 +168,7 @@ static int do_umount(const char *user) {
return user_remove_runtime_path(runtime_path);
}
-int main(int argc, char *argv[]) {
+static int run(int argc, char *argv[]) {
int r;
log_parse_environment();
@@ -176,27 +176,24 @@ int main(int argc, char *argv[]) {
if (argc != 3) {
log_error("This program takes two arguments.");
- return EXIT_FAILURE;
+ return -EINVAL;
}
if (!STR_IN_SET(argv[1], "start", "stop")) {
log_error("First argument must be either \"start\" or \"stop\".");
- return EXIT_FAILURE;
+ return -EINVAL;
}
r = mac_selinux_init();
- if (r < 0) {
- log_error_errno(r, "Could not initialize labelling: %m\n");
- return EXIT_FAILURE;
- }
+ if (r < 0)
+ return log_error_errno(r, "Could not initialize labelling: %m\n");
umask(0022);
if (streq(argv[1], "start"))
- r = do_mount(argv[2]);
- else if (streq(argv[1], "stop"))
- r = do_umount(argv[2]);
- else
- assert_not_reached("Unknown verb!");
-
- return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+ return do_mount(argv[2]);
+ if (streq(argv[1], "stop"))
+ return do_umount(argv[2]);
+ assert_not_reached("Unknown verb!");
}
+
+DEFINE_MAIN_FUNCTION(run);