Diff between 59efeba8cb1fe0f5e95c0d24107670aa5bd9924e and cbf8891907d2af6468ce712f5fecc2530faa3d3c

Changed Files

File Additions Deletions Status
obexd/src/manager.c +20 -0 modified

Full Patch

diff --git a/obexd/src/manager.c b/obexd/src/manager.c
index 08b7776..83d22b5 100644
--- a/obexd/src/manager.c
+++ b/obexd/src/manager.c
@@ -344,6 +344,25 @@ static gboolean transfer_get_status(const GDBusPropertyTable *property,
 	return TRUE;
 }
 
+static gboolean transfer_get_session(const GDBusPropertyTable *property,
+					DBusMessageIter *iter, void *data)
+{
+	struct obex_transfer *transfer = data;
+	struct obex_session *session = transfer->session;
+	char *path;
+
+	if (session == NULL)
+		return FALSE;
+
+	path = g_strdup_printf("%s/session%u", OBEX_BASE_PATH, session->id);
+
+	dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH, &path);
+
+	g_free(path);
+
+	return TRUE;
+}
+
 static gboolean transfer_name_exists(const GDBusPropertyTable *property,
 								void *data)
 {
@@ -489,6 +508,7 @@ static const GDBusMethodTable transfer_methods[] = {
 
 static const GDBusPropertyTable transfer_properties[] = {
 	{ "Status", "s", transfer_get_status },
+	{ "Session", "o", transfer_get_session },
 	{ "Name", "s", transfer_get_name, NULL, transfer_name_exists },
 	{ "Type", "s", transfer_get_type, NULL, transfer_type_exists },
 	{ "Size", "t", transfer_get_size, NULL, transfer_size_exists },