diff options
author | Richard Phibel <rphibel@googlemail.com> | 2022-11-07 17:13:15 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2023-01-10 15:16:26 +0100 |
commit | cd48e23f6a33c9acb47a06b99d9bdc84ee42cebe (patch) | |
tree | 4c241fe4081efeb70aa6b33ff9a7613b2b0b2720 /src/shared/bus-unit-util.c | |
parent | 81315baa68c9c8f7f6f5608fa8bc1daebf0618df (diff) | |
download | systemd-cd48e23f6a33c9acb47a06b99d9bdc84ee42cebe.tar.gz |
core: add OpenFile setting
Diffstat (limited to 'src/shared/bus-unit-util.c')
-rw-r--r-- | src/shared/bus-unit-util.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c index 7154c9b4c0..0fa2dea2d4 100644 --- a/src/shared/bus-unit-util.c +++ b/src/shared/bus-unit-util.c @@ -29,6 +29,7 @@ #include "mountpoint-util.h" #include "nsflags.h" #include "numa-util.h" +#include "open-file.h" #include "parse-helpers.h" #include "parse-util.h" #include "path-util.h" @@ -410,6 +411,23 @@ static int bus_append_exec_command(sd_bus_message *m, const char *field, const c return 1; } +static int bus_append_open_file(sd_bus_message *m, const char *field, const char *eq) { + _cleanup_(open_file_freep) OpenFile *of = NULL; + int r; + + assert(m); + + r = open_file_parse(eq, &of); + if (r < 0) + return log_error_errno(r, "Failed to parse OpenFile= setting: %m"); + + r = sd_bus_message_append(m, "(sv)", field, "a(sst)", (size_t) 1, of->path, of->fdname, of->flags); + if (r < 0) + return bus_log_create_error(r); + + return 1; +} + static int bus_append_ip_address_access(sd_bus_message *m, int family, const union in_addr_union *prefix, unsigned char prefixlen) { int r; @@ -2300,6 +2318,9 @@ static int bus_append_service_property(sd_bus_message *m, const char *field, con return 1; } + if (streq(field, "OpenFile")) + return bus_append_open_file(m, field, eq); + return 0; } |