]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
run: can launch units with ProtectHome
authorEvgeny Vereshchagin <evvers@ya.ru>
Mon, 26 Oct 2015 00:20:49 +0000 (00:20 +0000)
committerEvgeny Vereshchagin <evvers@ya.ru>
Mon, 26 Oct 2015 00:20:49 +0000 (00:20 +0000)
src/core/dbus-execute.c
src/shared/bus-util.c

index af352531a485fbcd3004895f292649db5b9c76a2..6f1e0dc6ac25e259a4c240d16a595d73290c9326 100644 (file)
@@ -1361,6 +1361,32 @@ int bus_exec_context_set_transient_property(
 
                 return 1;
 
+        } else if (streq(name, "ProtectHome")) {
+                const char *s;
+                ProtectHome ph;
+
+                r = sd_bus_message_read(message, "s", &s);
+                if (r < 0)
+                        return r;
+
+                r = parse_boolean(s);
+                if (r > 0)
+                        ph = PROTECT_HOME_YES;
+                else if (r == 0)
+                        ph = PROTECT_HOME_NO;
+                else {
+                        ph = protect_home_from_string(s);
+                        if (ph < 0)
+                                return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Failed to parse protect home value");
+                }
+
+                if (mode != UNIT_CHECK) {
+                        c->protect_home = ph;
+                        unit_write_drop_in_private_format(u, mode, name, "%s=%s\n", name, s);
+                }
+
+                return 1;
+
         } else if (rlimit_from_string(name) >= 0) {
                 uint64_t rl;
                 rlim_t x;
index fdb6fced021039d82c14c789865dd670a7ab9f1a..604b8f248a2b3f089806ddc403fe4d3ec83ac61b 100644 (file)
@@ -1509,7 +1509,8 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
                               "UtmpIdentifier", "UtmpMode", "PAMName", "TTYPath",
                               "StandardInput", "StandardOutput", "StandardError",
                               "Description", "Slice", "Type", "WorkingDirectory",
-                              "RootDirectory", "SyslogIdentifier", "ProtectSystem"))
+                              "RootDirectory", "SyslogIdentifier", "ProtectSystem",
+                              "ProtectHome"))
                 r = sd_bus_message_append(m, "v", "s", eq);
 
         else if (streq(field, "SyslogLevel")) {