Diff between ac94e9bd284043150693943d34ec690a0a277232 and 815bfac99d33548f8c8656c08319cbb8f1aa8360

Changed Files

File Additions Deletions Status
obexd/plugins/ftp.c +2 -5 modified
obexd/plugins/opp.c +2 -8 modified
obexd/plugins/pbap.c +2 -5 modified
obexd/plugins/syncevolution.c +1 -2 modified
obexd/src/dbus.h +2 -12 modified
obexd/src/manager.c +20 -41 modified
obexd/src/obex.c +1 -1 modified
obexd/src/service.h +1 -1 modified

Full Patch

diff --git a/obexd/plugins/ftp.c b/obexd/plugins/ftp.c
index b7f16f1..5da0a1b 100644
--- a/obexd/plugins/ftp.c
+++ b/obexd/plugins/ftp.c
@@ -435,12 +435,9 @@ done:
 	g_free(fullname);
 }
 
-static void ftp_disconnect(obex_t *obex)
+static void ftp_disconnect(struct OBEX_session *os)
 {
-	struct obex_session *os = OBEX_GetUserData(obex);
-
-	emit_session_removed(os->cid);
-	unregister_session(os->cid);
+	manager_unregister_session(os);
 }
 
 struct obex_service_driver pcsuite = {
diff --git a/obexd/plugins/opp.c b/obexd/plugins/opp.c
index aa690f8..d12ff41 100644
--- a/obexd/plugins/opp.c
+++ b/obexd/plugins/opp.c
@@ -219,15 +219,9 @@ fail:
 	OBEX_ObjectSetRsp(obj, OBEX_RSP_FORBIDDEN, OBEX_RSP_FORBIDDEN);
 }
 
-static void opp_disconnect(obex_t *obex)
+static void opp_disconnect(struct OBEX_session *os)
 {
-	struct obex_session *os = OBEX_GetUserData(obex);
-
-	/* Got an error during a transfer. */
-	if (os->object)
-		emit_transfer_completed(os->cid, os->offset == os->size);
-
-	unregister_transfer(os->cid);
+	manager_unregister_transfer(os);
 }
 
 static void opp_reset(obex_t *obex)
diff --git a/obexd/plugins/pbap.c b/obexd/plugins/pbap.c
index 43d4214..10fe863 100644
--- a/obexd/plugins/pbap.c
+++ b/obexd/plugins/pbap.c
@@ -536,12 +536,9 @@ static void pbap_setpath(obex_t *obex, obex_object_t *obj)
 	OBEX_ObjectSetRsp(obj, OBEX_RSP_SUCCESS, OBEX_RSP_SUCCESS);
 }
 
-static void pbap_disconnect(obex_t *obex)
+static void pbap_disconnect(struct OBEX_session *os)
 {
-	struct obex_session *os = OBEX_GetUserData(obex);
-
-	emit_session_removed(os->cid);
-	unregister_session(os->cid);
+	manager_unregister_session(os);
 }
 
 static gint pbap_chkput(obex_t *obex, obex_object_t *obj)
diff --git a/obexd/plugins/syncevolution.c b/obexd/plugins/syncevolution.c
index 9b77492..02fb6fb 100644
--- a/obexd/plugins/syncevolution.c
+++ b/obexd/plugins/syncevolution.c
@@ -437,9 +437,8 @@ static void close_cb(DBusPendingCall *call, void *user_data)
 	dbus_message_unref(reply);
 }
 
-static void synce_disconnect(obex_t *obex)
+static void synce_disconnect(struct OBEX_session *os)
 {
-	struct obex_session *os = OBEX_GetUserData(obex);
 	struct synce_context *context;
 	DBusMessage *msg;
 	const gchar *error;
diff --git a/obexd/src/dbus.h b/obexd/src/dbus.h
index d24085b..0da6bae 100644
--- a/obexd/src/dbus.h
+++ b/obexd/src/dbus.h
@@ -21,10 +21,6 @@
  *
  */
 
-void emit_session_created(guint32 id);
-
-void emit_session_removed(guint32 id);
-
 void emit_transfer_started(guint32 id);
 
 void emit_transfer_completed(guint32 id, gboolean success);
@@ -35,18 +31,12 @@ int request_authorization(gint32 cid, int fd, const gchar *filename,
 			const gchar *type, gint32 length, gint32 time,
 			gchar **new_folder, gchar **new_name);
 
-void register_transfer(guint32 id, struct obex_session *os);
-
-void unregister_transfer(guint32 id);
-
 void register_record(struct server *server, gpointer user_data);
 
 gint request_service_authorization(struct server *server, GIOChannel *io,
 					const char *address);
 
-void register_session(guint32 id, struct obex_session *os);
-
-void unregister_session(guint32 id);
-
 void manager_register_session(struct OBEX_session *os);
+void manager_unregister_session(struct OBEX_session *os);
 void manager_register_transfer(struct OBEX_session *os);
+void manager_unregister_transfer(struct OBEX_session *os);
diff --git a/obexd/src/manager.c b/obexd/src/manager.c
index 962cd4e..3b03a78 100644
--- a/obexd/src/manager.c
+++ b/obexd/src/manager.c
@@ -580,30 +580,6 @@ void manager_cleanup(void)
 	dbus_connection_unref(connection);
 }
 
-void emit_session_created(guint32 id)
-{
-	gchar *path = g_strdup_printf("/session%u", id);
-
-	g_dbus_emit_signal(connection, OPENOBEX_MANAGER_PATH,
-			OPENOBEX_MANAGER_INTERFACE, "SessionCreated",
-			DBUS_TYPE_OBJECT_PATH, &path,
-			DBUS_TYPE_INVALID);
-
-	g_free(path);
-}
-
-void emit_session_removed(guint32 id)
-{
-	gchar *path = g_strdup_printf("/session%u", id);
-
-	g_dbus_emit_signal(connection, OPENOBEX_MANAGER_PATH,
-			OPENOBEX_MANAGER_INTERFACE, "SessionRemoved",
-			DBUS_TYPE_OBJECT_PATH, &path,
-			DBUS_TYPE_INVALID);
-
-	g_free(path);
-}
-
 void emit_transfer_started(guint32 id)
 {
 	gchar *path = g_strdup_printf("/transfer%u", id);
@@ -644,12 +620,7 @@ void emit_transfer_progress(guint32 id, guint32 total, guint32 transfered)
 
 void manager_register_transfer(struct OBEX_session *os)
 {
-	register_transfer(os->cid, os);
-}
-
-void register_transfer(guint32 id, struct obex_session *os)
-{
-	gchar *path = g_strdup_printf("/transfer%u", id);
+	gchar *path = g_strdup_printf("/transfer%u", os->cid);
 
 	if (!g_dbus_register_interface(connection, path,
 				TRANSFER_INTERFACE,
@@ -663,9 +634,13 @@ void register_transfer(guint32 id, struct obex_session *os)
 	g_free(path);
 }
 
-void unregister_transfer(guint32 id)
+void manager_unregister_transfer(struct OBEX_session *os)
 {
-	gchar *path = g_strdup_printf("/transfer%u", id);
+	gchar *path = g_strdup_printf("/transfer%u", os->cid);
+
+	/* Got an error during a transfer. */
+	if (os->object)
+		emit_transfer_completed(os->cid, os->offset == os->size);
 
 	g_dbus_unregister_interface(connection, path,
 				TRANSFER_INTERFACE);
@@ -1011,9 +986,9 @@ gint request_service_authorization(struct server *server, GIOChannel *io,
 	return 0;
 }
 
-void register_session(guint32 id, struct obex_session *os)
+void manager_register_session(struct OBEX_session *os)
 {
-	gchar *path = g_strdup_printf("/session%u", id);
+	gchar *path = g_strdup_printf("/session%u", os->cid);
 
 	if (!g_dbus_register_interface(connection, path,
 				SESSION_INTERFACE,
@@ -1024,18 +999,22 @@ void register_session(guint32 id, struct obex_session *os)
 		return;
 	}
 
+	g_dbus_emit_signal(connection, OPENOBEX_MANAGER_PATH,
+			OPENOBEX_MANAGER_INTERFACE, "SessionCreated",
+			DBUS_TYPE_OBJECT_PATH, &path,
+			DBUS_TYPE_INVALID);
+
 	g_free(path);
 }
 
-void manager_register_session(struct OBEX_session *os)
+void manager_unregister_session(struct OBEX_session *os)
 {
-	register_session(os->cid, os);
-	emit_session_created(os->cid);
-}
+	gchar *path = g_strdup_printf("/session%u", os->cid);
 
-void unregister_session(guint32 id)
-{
-	gchar *path = g_strdup_printf("/session%u", id);
+	g_dbus_emit_signal(connection, OPENOBEX_MANAGER_PATH,
+			OPENOBEX_MANAGER_INTERFACE, "SessionRemoved",
+			DBUS_TYPE_OBJECT_PATH, &path,
+			DBUS_TYPE_INVALID);
 
 	g_dbus_unregister_interface(connection, path,
 				SESSION_INTERFACE);
diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index bd83917..5dfc618 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
@@ -931,7 +931,7 @@ static void obex_handle_destroy(gpointer user_data)
 	os = OBEX_GetUserData(obex);
 
 	if (os->service && os->service->disconnect)
-		os->service->disconnect(obex);
+		os->service->disconnect(os);
 
 	obex_session_free(os);
 
diff --git a/obexd/src/service.h b/obexd/src/service.h
index a4f3e34..6729251 100644
--- a/obexd/src/service.h
+++ b/obexd/src/service.h
@@ -38,7 +38,7 @@ struct obex_service_driver {
 	void (*put) (obex_t *obex, obex_object_t *obj);
 	gint (*chkput) (obex_t *obex, obex_object_t *obj);
 	void (*setpath) (obex_t *obex, obex_object_t *obj);
-	void (*disconnect) (obex_t *obex);
+	void (*disconnect) (struct OBEX_session *os);
 	void (*reset) (obex_t *obex);
 };