[PATCH] obexd/client: Add client session properties
From: <hidden>
Date: 2013-07-05 09:08:26
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Martin <redacted> --- obexd/client/session.c | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-)
diff --git a/obexd/client/session.c b/obexd/client/session.c
index 8d32ed0..e9cbf00 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c@@ -630,9 +630,6 @@ static gboolean get_source(const GDBusPropertyTable *property, { struct obc_session *session = data; - if (session->source == NULL) - return FALSE; - dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &session->source);
@@ -675,10 +672,35 @@ static const GDBusMethodTable session_methods[] = { { } }; +static gboolean get_target(const GDBusPropertyTable *property, + DBusMessageIter *iter, void *data) +{ + struct obc_session *session = data; + char *uuid; + + uuid = g_strdup(session->driver->uuid); + + dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &uuid); + g_free(uuid); + + return TRUE; +} + +static gboolean session_target_exists(const GDBusPropertyTable *property, + void *data) +{ + struct obc_session *session = data; + if (session->driver) + return session->driver->uuid ? TRUE : FALSE; + + return FALSE; +} + static const GDBusPropertyTable session_properties[] = { { "Source", "s", get_source, NULL, source_exists }, { "Destination", "s", get_destination }, { "Channel", "y", get_channel }, + { "Target", "s", get_target, NULL, session_target_exists }, { } };
@@ -854,9 +876,13 @@ const char *obc_session_register(struct obc_session *session, session->path = g_strdup_printf("%s/session%ju", SESSION_BASEPATH, counter++); - if (g_dbus_register_interface(session->conn, session->path, - SESSION_INTERFACE, session_methods, - NULL, NULL, session, destroy) == FALSE) + if (g_dbus_register_interface(session->conn, + session->path, + SESSION_INTERFACE, + session_methods, + NULL, + session_properties, + session, destroy) == FALSE) goto fail; if (session->driver->probe && session->driver->probe(session) < 0) {
--
1.7.10.4