diff --git a/doc/obexd-api.txt b/doc/obexd-api.txt
index 08c333d..b0b3068 100644
--- a/doc/obexd-api.txt
+++ b/doc/obexd-api.txt
Possible values: "queued", "active", "complete" or
"error"
+ object Session [readonly]
+
+ The object path of the session the transfer belongs
+ to.
+
string Name [readonly]
Name of the transferred object.
diff --git a/obexd/client/transfer.c b/obexd/client/transfer.c
index aa29b49..3b4a003 100644
--- a/obexd/client/transfer.c
+++ b/obexd/client/transfer.c
struct transfer_callback *callback;
DBusConnection *conn;
DBusMessage *msg;
+ char *session; /* Session path */
char *owner; /* Transfer initiator */
char *path; /* Transfer path */
gchar *filename; /* Transfer file location */
return TRUE;
}
+static gboolean get_session(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct obc_transfer *transfer = data;
+
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH,
+ &transfer->session);
+
+ return TRUE;
+}
+
static const GDBusMethodTable obc_transfer_methods[] = {
{ GDBUS_ASYNC_METHOD("Cancel", NULL, NULL,
obc_transfer_cancel) },
{ "Size", "t", get_size },
{ "Filename", "s", get_filename, NULL, filename_exists },
{ "Transferred", "t", get_transferred, NULL, transferred_exists },
+ { "Session", "o", get_session },
{ }
};
g_free(transfer->filename);
g_free(transfer->name);
g_free(transfer->type);
+ g_free(transfer->session);
g_free(transfer->path);
g_free(transfer);
}
gboolean obc_transfer_register(struct obc_transfer *transfer,
DBusConnection *conn,
- const char *path,
+ const char *session,
const char *owner,
GError **err)
{
transfer->owner = g_strdup(owner);
- transfer->path = g_strdup_printf("%s/transfer%ju", path, counter++);
+ transfer->session = g_strdup(session);
+ transfer->path = g_strdup_printf("%s/transfer%ju", session, counter++);
transfer->conn = dbus_connection_ref(conn);
if (transfer->conn == NULL) {
diff --git a/obexd/client/transfer.h b/obexd/client/transfer.h
index f7d0423..b6b835d 100644
--- a/obexd/client/transfer.h
+++ b/obexd/client/transfer.h
gboolean obc_transfer_register(struct obc_transfer *transfer,
DBusConnection *conn,
- const char *path,
+ const char *session,
const char *owner,
GError **err);