machined: add a full bus object for images

This commit is contained in:
Lennart Poettering
2014-12-19 20:43:18 +01:00
parent c2ce6a3d82
commit ebeccf9eec
7 changed files with 262 additions and 47 deletions
-23
View File
@@ -32,7 +32,6 @@
#include "fileio.h"
#include "in-addr-util.h"
#include "local-addresses.h"
#include "image.h"
#include "machine.h"
static int property_get_id(
@@ -476,11 +475,9 @@ char *machine_bus_path(Machine *m) {
}
int machine_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error) {
_cleanup_(image_hashmap_freep) Hashmap *images = NULL;
_cleanup_strv_free_ char **l = NULL;
Machine *machine = NULL;
Manager *m = userdata;
Image *image;
Iterator i;
int r;
@@ -500,26 +497,6 @@ int machine_node_enumerator(sd_bus *bus, const char *path, void *userdata, char
return r;
}
images = hashmap_new(&string_hash_ops);
if (!images)
return -ENOMEM;
r = image_discover(images);
if (r < 0)
return r;
HASHMAP_FOREACH(image, images, i) {
char *p;
p = image_bus_path(image->name);
if (!p)
return -ENOMEM;
r = strv_consume(&l, p);
if (r < 0)
return r;
}
*nodes = l;
l = NULL;