chiark / gitweb /
bus: introduce concept of a "default" event loop per-thread and make use of it everywhere
[elogind.git] / src / machine / machinectl.c
index 4b8351c98a95735fe9cd2f18df21bc71c3731379..a1890aa855a82a389a37ca6c4f14d9e20828ab60 100644 (file)
@@ -226,7 +226,7 @@ static void print_machine_status_info(sd_bus *bus, MachineStatusInfo *i) {
 }
 
 static int show_info(const char *verb, sd_bus *bus, const char *path, bool *new_line) {
-        MachineStatusInfo info = {};
+
         static const struct bus_properties_map map[]  = {
                 { "Name",          "s",  NULL,          offsetof(MachineStatusInfo, name) },
                 { "Class",         "s",  NULL,          offsetof(MachineStatusInfo, class) },
@@ -238,6 +238,8 @@ static int show_info(const char *verb, sd_bus *bus, const char *path, bool *new_
                 { "Id",            "ay", bus_map_id128, offsetof(MachineStatusInfo, id) },
                 {}
         };
+
+        MachineStatusInfo info = {};
         int r;
 
         assert(path);
@@ -603,6 +605,8 @@ static int login_machine(sd_bus *bus, char **args, unsigned n) {
                 return r;
         }
 
+        container_bus = sd_bus_unref(container_bus);
+
         assert_se(sigemptyset(&mask) == 0);
         sigset_add_many(&mask, SIGWINCH, SIGTERM, SIGINT, -1);
         assert_se(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);