- if (i->scope) {
- printf("\t Unit: %s\n", i->scope);
- show_scope_cgroup(bus, i->scope, i->leader);
- }
-}
-
-static int status_property_machine(const char *name, sd_bus_message *property, MachineStatusInfo *i) {
- char type;
- const char *contents;
- int r;
-
- assert(name);
- assert(property);
- assert(i);
-
- r = sd_bus_message_peek_type(property, &type, &contents);
- if (r < 0) {
- log_error("Could not determine type of message: %s", strerror(-r));
- return r;
- }
-
- switch (type) {
-
- case SD_BUS_TYPE_STRING: {
- const char *s;
-
- sd_bus_message_read_basic(property, type, &s);
-
- if (!isempty(s)) {
- if (streq(name, "Name"))
- i->name = s;
- else if (streq(name, "Class"))
- i->class = s;
- else if (streq(name, "Service"))
- i->service = s;
- else if (streq(name, "Scope"))
- i->scope = s;
- else if (streq(name, "RootDirectory"))
- i->root_directory = s;
- }
- break;
- }
-
- case SD_BUS_TYPE_UINT32: {
- uint32_t u;
-
- sd_bus_message_read_basic(property, type, &u);
-
- if (streq(name, "Leader"))
- i->leader = (pid_t) u;
-
- break;
- }
-
- case SD_BUS_TYPE_UINT64: {
- uint64_t u;
-
- sd_bus_message_read_basic(property, type, &u);
-
- if (streq(name, "Timestamp"))
- i->timestamp = (usec_t) u;
-
- break;
- }
-
- case SD_BUS_TYPE_ARRAY: {
- if (streq(contents, "y") && streq(name, "Id")) {
- const void *v;
- size_t n;
-
- sd_bus_message_read_array(property, SD_BUS_TYPE_BYTE, &v, &n);
- if (n == 0)
- i->id = SD_ID128_NULL;
- else if (n == 16)
- memcpy(&i->id, v, n);
- }
-
- break;
- }