diff options
author | Vinicius Costa Gomes <vinicius.gomes@openbossa.org> | 2008-11-10 10:48:43 -0300 |
---|---|---|
committer | Vinicius Costa Gomes <vinicius.gomes@openbossa.org> | 2008-11-10 10:48:43 -0300 |
commit | a5c33c4b1eba9f7248c6a465ba77a4983c50f62e (patch) | |
tree | 7c6101bc97013920bc536156168ece000a6e7b22 | |
parent | a2aaa3c0b87e7721c0e32a33ff741512e289fdef (diff) | |
download | obexd-a5c33c4b1eba9f7248c6a465ba77a4983c50f62e.tar.gz |
Closes the session when the client leaves the bus
-rw-r--r-- | client/session.c | 9 |
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; |