[Telepathy-commits] [telepathy-gabble/master] tube-dbus: Parameters property has to be in channel-properties only in incoming tubes
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Wed Feb 11 04:59:22 PST 2009
---
src/tube-dbus.c | 45 ++++++++++++++++++++++++++++++++-------------
1 files changed, 32 insertions(+), 13 deletions(-)
diff --git a/src/tube-dbus.c b/src/tube-dbus.c
index 2f32886..49d95b9 100644
--- a/src/tube-dbus.c
+++ b/src/tube-dbus.c
@@ -696,19 +696,38 @@ gabble_tube_dbus_get_property (GObject *object,
g_value_set_boolean (value, priv->closed);
break;
case PROP_CHANNEL_PROPERTIES:
- g_value_take_boxed (value,
- tp_dbus_properties_mixin_make_properties_hash (object,
- TP_IFACE_CHANNEL, "TargetHandle",
- TP_IFACE_CHANNEL, "TargetHandleType",
- TP_IFACE_CHANNEL, "ChannelType",
- TP_IFACE_CHANNEL, "TargetID",
- TP_IFACE_CHANNEL, "InitiatorHandle",
- TP_IFACE_CHANNEL, "InitiatorID",
- TP_IFACE_CHANNEL, "Requested",
- TP_IFACE_CHANNEL, "Interfaces",
- GABBLE_IFACE_CHANNEL_TYPE_DBUS_TUBE, "ServiceName",
- GABBLE_IFACE_CHANNEL_INTERFACE_TUBE, "Parameters",
- NULL));
+ {
+ GHashTable *properties;
+
+ properties = tp_dbus_properties_mixin_make_properties_hash (object,
+ TP_IFACE_CHANNEL, "TargetHandle",
+ TP_IFACE_CHANNEL, "TargetHandleType",
+ TP_IFACE_CHANNEL, "ChannelType",
+ TP_IFACE_CHANNEL, "TargetID",
+ TP_IFACE_CHANNEL, "InitiatorHandle",
+ TP_IFACE_CHANNEL, "InitiatorID",
+ TP_IFACE_CHANNEL, "Requested",
+ TP_IFACE_CHANNEL, "Interfaces",
+ GABBLE_IFACE_CHANNEL_TYPE_DBUS_TUBE, "ServiceName",
+ NULL);
+
+ if (priv->initiator != priv->self_handle)
+ {
+ /* channel has not been requested so Parameters is immutable */
+ GValue *prop_value = g_slice_new0 (GValue);
+
+ tp_dbus_properties_mixin_get (object,
+ GABBLE_IFACE_CHANNEL_INTERFACE_TUBE, "Parameters",
+ prop_value, NULL);
+ g_assert (G_IS_VALUE (prop_value));
+
+ g_hash_table_insert (properties,
+ g_strdup_printf ("%s.%s", GABBLE_IFACE_CHANNEL_INTERFACE_TUBE,
+ "Parameters"), prop_value);
+ }
+
+ g_value_take_boxed (value, properties);
+ }
break;
case PROP_REQUESTED:
g_value_set_boolean (value,
--
1.5.6.5
More information about the telepathy-commits
mailing list