X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fbus-util.c;h=0b77d3f85d411548b2fbe91ccd714721d000908b;hb=cb4c5148b5dab1eaf42347bde0368b6df916a206;hp=fde3c3119a02875ebd60f311a7e59954021d6a43;hpb=d93949b9ea71babdcccbe98d33a9b9472ab2d08f;p=elogind.git diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c index fde3c3119..0b77d3f85 100644 --- a/src/shared/bus-util.c +++ b/src/shared/bus-util.c @@ -679,7 +679,7 @@ int bus_connect_user_systemd(sd_bus **_bus) { if (r < 0) return r; - bus->address = strjoin("unix:path=", ee, "/systemd/private", NULL); + bus->address = strjoin("unix:path=", ee, "/systemd/private"); if (!bus->address) return -ENOMEM; @@ -773,6 +773,23 @@ int bus_print_property(const char *name, sd_bus_message *property, bool value, b char timespan[FORMAT_TIMESPAN_MAX]; print_property(name, "%s", format_timespan(timespan, sizeof(timespan), u, 0)); + } else if (streq(name, "RestrictNamespaces")) { + _cleanup_free_ char *s = NULL; + const char *result = NULL; + + if ((u & NAMESPACE_FLAGS_ALL) == 0) + result = "yes"; + else if ((u & NAMESPACE_FLAGS_ALL) == NAMESPACE_FLAGS_ALL) + result = "no"; + else { + r = namespace_flag_to_string_many(u, &s); + if (r < 0) + return r; + + result = s; + } + + print_property(name, "%s", result); } else print_property(name, "%"PRIu64, u); @@ -1334,6 +1351,7 @@ int bus_property_get_bool( return sd_bus_message_append_basic(reply, 'b', &b); } +#if 0 /// UNNEEDED by elogind int bus_property_get_id128( sd_bus *bus, const char *path, @@ -1348,8 +1366,9 @@ int bus_property_get_id128( if (sd_id128_is_null(*id)) /* Add an empty array if the ID is zero */ return sd_bus_message_append(reply, "ay", 0); else - return sd_bus_message_append_array(reply, 'b', id->bytes, 16); + return sd_bus_message_append_array(reply, 'y', id->bytes, 16); } +#endif // 0 #if __SIZEOF_SIZE_T__ != 8 int bus_property_get_size( @@ -1473,7 +1492,7 @@ int bus_path_encode_unique(sd_bus *b, const char *prefix, const char *sender_id, if (!external_label) return -ENOMEM; - p = strjoin(prefix, "/", sender_label, "/", external_label, NULL); + p = strjoin(prefix, "/", sender_label, "/", external_label); if (!p) return -ENOMEM; @@ -1581,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; +}