Diff between 99291524037ba366e1a664bb6fea5370bba3f886 and 789fcf9ad3c3a2f7c8614371b7472b975da50d95

Changed Files

File Additions Deletions Status
obexd/client/session.c +5 -2 modified
obexd/client/session.h +1 -0 modified

Full Patch

diff --git a/obexd/client/session.c b/obexd/client/session.c
index 592624a..f0c5056 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
@@ -735,6 +735,8 @@ static DBusMessage *release_agent(DBusConnection *connection,
 
 static void session_shutdown(struct session_data *session)
 {
+	g_dbus_remove_watch(session->conn, session->owner_watch);
+
 	if (session->transfer_path) {
 		agent_notify_error(session->conn, session->agent_name,
 				session->agent_path, session->transfer_path,
@@ -1448,8 +1450,9 @@ int session_register(struct session_data *session)
 		return -EIO;
 	}
 
-	g_dbus_add_disconnect_watch(session->conn, session->owner,
-				owner_disconnected, session, NULL);
+	session->owner_watch = g_dbus_add_disconnect_watch(session->conn,
+				session->owner, owner_disconnected, session,
+				NULL);
 
 	session_ref(session);
 
diff --git a/obexd/client/session.h b/obexd/client/session.h
index dd0c502..16c3392 100644
--- a/obexd/client/session.h
+++ b/obexd/client/session.h
@@ -53,6 +53,7 @@ struct session_data {
 	gchar *agent_path;
 	guint agent_watch;
 	gchar *owner;		/* Session owner */
+	guint owner_watch;
 	GPtrArray *pending;
 };