summaryrefslogtreecommitdiff
path: root/src/core/automount.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-10-07 23:07:39 +0200
committerLennart Poettering <lennart@poettering.net>2015-10-08 12:55:15 +0200
commita34ceba66fc0e856d8f76f340389a4768b57a365 (patch)
treeb34ee4cf6eda0d1fef3df2235c58252b96958c69 /src/core/automount.c
parent66cb2fde7b0ab6603775ad13c30c004f5fd88f0c (diff)
core: add support for setting stdin/stdout/stderr for transient services
When starting a transient service, allow setting stdin/stdout/stderr fds for it, by passing them in via the bus. This also simplifies some of the serialization code for units.
Diffstat (limited to 'src/core/automount.c')
-rw-r--r--src/core/automount.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/core/automount.c b/src/core/automount.c
index 8173a6cbe8..e0535ec201 100644
--- a/src/core/automount.c
+++ b/src/core/automount.c
@@ -774,8 +774,9 @@ static int automount_stop(Unit *u) {
static int automount_serialize(Unit *u, FILE *f, FDSet *fds) {
Automount *a = AUTOMOUNT(u);
- void *p;
Iterator i;
+ void *p;
+ int r;
assert(a);
assert(f);
@@ -790,15 +791,9 @@ static int automount_serialize(Unit *u, FILE *f, FDSet *fds) {
SET_FOREACH(p, a->expire_tokens, i)
unit_serialize_item_format(u, f, "expire-token", "%u", PTR_TO_UINT(p));
- if (a->pipe_fd >= 0) {
- int copy;
-
- copy = fdset_put_dup(fds, a->pipe_fd);
- if (copy < 0)
- return copy;
-
- unit_serialize_item_format(u, f, "pipe-fd", "%i", copy);
- }
+ r = unit_serialize_item_fd(u, f, fds, "pipe-fd", a->pipe_fd);
+ if (r < 0)
+ return r;
return 0;
}