From f034e0b6a2f484db743175a5e4a18e49b6aa5012 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 15 Nov 2016 19:18:36 +0100 Subject: [PATCH] shared: split out code for adding multiple names to sd_bus_track object Let's introduce a new call bus_track_add_name_many() that adds a string list to a tracking object. --- src/shared/bus-util.c | 19 +++++++++++++++++++ src/shared/bus-util.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c index 2d1b3b965..0b77d3f85 100644 --- a/src/shared/bus-util.c +++ b/src/shared/bus-util.c @@ -1600,3 +1600,22 @@ int bus_property_get_rlimit( return sd_bus_message_append(reply, "t", u); } #endif // 0 + +int bus_track_add_name_many(sd_bus_track *t, char **l) { + int r = 0; + char **i; + + assert(t); + + /* Continues adding after failure, and returns the first failure. */ + + STRV_FOREACH(i, l) { + int k; + + k = sd_bus_track_add_name(t, *i); + if (k < 0 && r >= 0) + r = k; + } + + return r; +} diff --git a/src/shared/bus-util.h b/src/shared/bus-util.h index 614f626e0..38732b631 100644 --- a/src/shared/bus-util.h +++ b/src/shared/bus-util.h @@ -179,3 +179,5 @@ int bus_path_decode_unique(const char *path, const char *prefix, char **ret_send #if 0 /// UNNEEDED by elogind int bus_property_get_rlimit(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error); #endif // 0 + +int bus_track_add_name_many(sd_bus_track *t, char **l); -- 2.30.2