summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinicius Costa Gomes <vinicius.gomes@openbossa.org>2008-11-10 10:48:43 -0300
committerVinicius Costa Gomes <vinicius.gomes@openbossa.org>2008-11-10 10:48:43 -0300
commita5c33c4b1eba9f7248c6a465ba77a4983c50f62e (patch)
tree7c6101bc97013920bc536156168ece000a6e7b22
parenta2aaa3c0b87e7721c0e32a33ff741512e289fdef (diff)
downloadobexd-a5c33c4b1eba9f7248c6a465ba77a4983c50f62e.tar.gz
Closes the session when the client leaves the bus
-rw-r--r--client/session.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/client/session.c b/client/session.c
index bdd55d3..3143cc0 100644
--- a/client/session.c
+++ b/client/session.c
@@ -783,6 +783,12 @@ static DBusMessage *close_session(DBusConnection *connection,
return dbus_message_new_method_return(message);
}
+static void owner_disconnected(DBusConnection *connection, void *user_data)
+{
+ struct session_data *session = user_data;
+
+ session_shutdown(session);
+}
static GDBusMethodTable session_methods[] = {
{ "GetProperties", "", "a{sv}", get_properties },
@@ -1439,6 +1445,9 @@ int session_register(struct session_data *session)
return -EIO;
}
+ g_dbus_add_disconnect_watch(session->conn, session->owner,
+ owner_disconnected, session, NULL);
+
session_ref(session);
return 0;