X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fmachine%2Fmachined.c;h=01b2caa322e2aa92aa185d3ec5ac26952e470159;hb=486cd82c8f7642016895b72bcc09a1bfe885a783;hp=25de0d5d4669ba6feb8c485ebc1e9cdb6351c08b;hpb=a658cafa98ab55ea948c29bc87eb3945d515fb41;p=elogind.git diff --git a/src/machine/machined.c b/src/machine/machined.c index 25de0d5d4..01b2caa32 100644 --- a/src/machine/machined.c +++ b/src/machine/machined.c @@ -46,13 +46,14 @@ Manager *manager_new(void) { m->machines = hashmap_new(string_hash_func, string_compare_func); m->machine_units = hashmap_new(string_hash_func, string_compare_func); + m->machine_leaders = hashmap_new(trivial_hash_func, trivial_compare_func); - if (!m->machines || !m->machine_units) { + if (!m->machines || !m->machine_units || !m->machine_leaders) { manager_free(m); return NULL; } - r = sd_event_new(&m->event); + r = sd_event_default(&m->event); if (r < 0) { manager_free(m); return NULL; @@ -71,6 +72,7 @@ void manager_free(Manager *m) { hashmap_free(m->machines); hashmap_free(m->machine_units); + hashmap_free(m->machine_leaders); sd_bus_unref(m->bus); sd_event_unref(m->event); @@ -78,46 +80,6 @@ void manager_free(Manager *m) { free(m); } -int manager_add_machine(Manager *m, const char *name, Machine **_machine) { - Machine *machine; - - assert(m); - assert(name); - - machine = hashmap_get(m->machines, name); - if (!machine) { - machine = machine_new(m, name); - if (!machine) - return -ENOMEM; - } - - if (_machine) - *_machine = machine; - - return 0; -} - -int manager_get_machine_by_pid(Manager *m, pid_t pid, Machine **machine) { - _cleanup_free_ char *unit = NULL; - Machine *mm; - int r; - - assert(m); - assert(pid >= 1); - assert(machine); - - r = cg_pid_get_unit(pid, &unit); - if (r < 0) - return r; - - mm = hashmap_get(m->machine_units, unit); - if (!mm) - return 0; - - *machine = mm; - return 1; -} - int manager_enumerate_machines(Manager *m) { _cleanup_closedir_ DIR *d = NULL; struct dirent *de; @@ -167,7 +129,7 @@ static int manager_connect_bus(Manager *m) { assert(m); assert(!m->bus); - r = sd_bus_open_system(&m->bus); + r = sd_bus_default_system(&m->bus); if (r < 0) { log_error("Failed to connect to system bus: %s", strerror(-r)); return r;