X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogind-dbus.c;h=bc1e49d18fa2cd4450bc2ddfab9a8199981f6672;hb=3887b5abcb3870db9ed53de3875a465c230ddd3f;hp=f39941c9d2f5d6e6c5e00ea9e1af9b9e4b4d7c70;hpb=55af3897854263eddc0818d5cc4614ccbdae7f32;p=elogind.git diff --git a/src/logind-dbus.c b/src/logind-dbus.c index f39941c9d..bc1e49d18 100644 --- a/src/logind-dbus.c +++ b/src/logind-dbus.c @@ -72,6 +72,8 @@ " \n" \ " \n" \ " \n" \ + " \n" \ + " \n" \ " \n" \ " \n" \ " \n" \ @@ -379,6 +381,7 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess session = hashmap_get(m->sessions, id); if (session) { + free(id); fifo_fd = session_create_fifo(session); if (fifo_fd < 0) { @@ -402,12 +405,16 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess goto fail; } + seat = session->seat ? session->seat->id : ""; + vtnr = session->vtnr; b = dbus_message_append_args( reply, DBUS_TYPE_STRING, &session->id, DBUS_TYPE_OBJECT_PATH, &p, DBUS_TYPE_STRING, &session->user->runtime_path, DBUS_TYPE_UNIX_FD, &fifo_fd, + DBUS_TYPE_STRING, &seat, + DBUS_TYPE_UINT32, &vtnr, DBUS_TYPE_INVALID); free(p); @@ -419,6 +426,9 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess close_nointr_nofail(fifo_fd); *_reply = reply; + strv_free(controllers); + strv_free(reset_controllers); + return 0; } @@ -519,12 +529,15 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess goto fail; } + seat = s ? s->id : ""; b = dbus_message_append_args( reply, DBUS_TYPE_STRING, &session->id, DBUS_TYPE_OBJECT_PATH, &p, DBUS_TYPE_STRING, &session->user->runtime_path, DBUS_TYPE_UNIX_FD, &fifo_fd, + DBUS_TYPE_STRING, &seat, + DBUS_TYPE_UINT32, &vtnr, DBUS_TYPE_INVALID); free(p); @@ -577,7 +590,6 @@ static int trigger_device(Manager *m, struct udev_device *d) { } } - if (udev_enumerate_scan_devices(e) < 0) { r = -EIO; goto finish;