chiark / gitweb /
machined: simplifications
authorLennart Poettering <lennart@poettering.net>
Mon, 4 Nov 2013 23:52:46 +0000 (00:52 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 5 Nov 2013 00:13:05 +0000 (01:13 +0100)
src/machine/machine-dbus.c
src/machine/machine.c
src/machine/machine.h
src/machine/machined-dbus.c
src/machine/machined.c
src/machine/machined.h

index 150a3f7..ddd6b4b 100644 (file)
@@ -210,13 +210,13 @@ int machine_send_create_reply(Machine *m, sd_bus_error *error) {
         c = m->create_message;
         m->create_message = NULL;
 
+        if (error)
+                return sd_bus_reply_method_error(m->manager->bus, c, error);
+
         /* Update the machine state file before we notify the client
          * about the result. */
         machine_save(m);
 
-        if (error)
-                return sd_bus_reply_method_error(m->manager->bus, c, error);
-
         p = machine_bus_path(m);
         if (!p)
                 return -ENOMEM;
index be669f0..a33a111 100644 (file)
@@ -338,7 +338,7 @@ int machine_stop(Machine *m) {
         return r;
 }
 
-int machine_check_gc(Machine *m, bool drop_not_started) {
+bool machine_check_gc(Machine *m, bool drop_not_started) {
         assert(m);
 
         if (drop_not_started && !m->started)
index bfb28d1..99ee258 100644 (file)
@@ -80,7 +80,7 @@ struct Machine {
 
 Machine* machine_new(Manager *manager, const char *name);
 void machine_free(Machine *m);
-int machine_check_gc(Machine *m, bool drop_not_started);
+bool machine_check_gc(Machine *m, bool drop_not_started);
 void machine_add_to_gc_queue(Machine *m);
 int machine_start(Machine *m, sd_bus_message *properties, sd_bus_error *error);
 int machine_stop(Machine *m);
index 6035597..b552662 100644 (file)
@@ -335,9 +335,9 @@ const sd_bus_vtable manager_vtable[] = {
 };
 
 int machine_node_enumerator(sd_bus *bus, const char *path, char ***nodes, void *userdata) {
+        _cleanup_strv_free_ char **l = NULL;
         Machine *machine = NULL;
         Manager *m = userdata;
-        char **l = NULL;
         Iterator i;
         int r;
 
@@ -360,6 +360,8 @@ int machine_node_enumerator(sd_bus *bus, const char *path, char ***nodes, void *
         }
 
         *nodes = l;
+        l = NULL;
+
         return 1;
 }
 
@@ -456,6 +458,8 @@ int match_unit_removed(sd_bus *bus, sd_bus_message *message, void *userdata) {
 
 int match_reloading(sd_bus *bus, sd_bus_message *message, void *userdata) {
         Manager *m = userdata;
+        Machine *machine;
+        Iterator i;
         int b, r;
 
         assert(bus);
@@ -466,16 +470,14 @@ int match_reloading(sd_bus *bus, sd_bus_message *message, void *userdata) {
                 return 0;
         }
 
-        /* systemd finished reloading, let's recheck all our machines */
-        if (!b) {
-                Machine *machine;
-                Iterator i;
+        if (b)
+                return 0;
 
-                log_debug("System manager has been reloaded, rechecking machines...");
+        /* systemd finished reloading, let's recheck all our machines */
+        log_debug("System manager has been reloaded, rechecking machines...");
 
-                HASHMAP_FOREACH(machine, m->machines, i)
-                        machine_add_to_gc_queue(machine);
-        }
+        HASHMAP_FOREACH(machine, m->machines, i)
+                machine_add_to_gc_queue(machine);
 
         return 0;
 }
@@ -507,7 +509,7 @@ int manager_start_scope(
         if (r < 0)
                 return r;
 
-        r = sd_bus_message_append(m, "ss", scope, "fail");
+        r = sd_bus_message_append(m, "ss", strempty(scope), "fail");
         if (r < 0)
                 return r;
 
@@ -620,23 +622,18 @@ int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, c
 }
 
 int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error) {
-        _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
-        int r;
-
         assert(manager);
         assert(unit);
 
-        r = sd_bus_call_method(
+        return sd_bus_call_method(
                         manager->bus,
                         "org.freedesktop.systemd1",
                         "/org/freedesktop/systemd1",
                         "org.freedesktop.systemd1.Manager",
                         "KillUnit",
                         error,
-                        &reply,
+                        NULL,
                         "ssi", unit, who == KILL_LEADER ? "main" : "all", signo);
-
-        return r;
 }
 
 int manager_unit_is_active(Manager *manager, const char *unit) {
index 6391551..25de0d5 100644 (file)
@@ -47,13 +47,13 @@ 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);
 
-        r = sd_event_new(&m->event);
-        if (r < 0) {
+        if (!m->machines || !m->machine_units) {
                 manager_free(m);
                 return NULL;
         }
 
-        if (!m->machines || !m->machine_units) {
+        r = sd_event_new(&m->event);
+        if (r < 0) {
                 manager_free(m);
                 return NULL;
         }
@@ -284,7 +284,7 @@ void manager_gc(Manager *m, bool drop_not_started) {
                 LIST_REMOVE(gc_queue, m->machine_gc_queue, machine);
                 machine->in_gc_queue = false;
 
-                if (machine_check_gc(machine, drop_not_started) == 0) {
+                if (!machine_check_gc(machine, drop_not_started)) {
                         machine_stop(machine);
                         machine_free(machine);
                 }
index c47a468..dfb63bd 100644 (file)
@@ -48,7 +48,6 @@ Manager *manager_new(void);
 void manager_free(Manager *m);
 
 int manager_add_machine(Manager *m, const char *name, Machine **_machine);
-
 int manager_enumerate_machines(Manager *m);
 
 int manager_startup(Manager *m);