diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2009-05-28 16:31:07 +0100 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2009-06-26 15:21:29 +0100 |
commit | 951bf1029b0fc3f3440d4704685cad73fa798054 (patch) | |
tree | 754cfbd81d87571bad7008fae60f0c6ab5714b0b /src/tube-dbus.c | |
parent | 2c0e45ce4db80e1593fdd3c49b47ffe1e5d86f92 (diff) | |
download | telepathy-salut-951bf1029b0fc3f3440d4704685cad73fa798054.tar.gz |
tube-dbus: implement DBusTube properties
Diffstat (limited to 'src/tube-dbus.c')
-rw-r--r-- | src/tube-dbus.c | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/src/tube-dbus.c b/src/tube-dbus.c index 8981996b..0fb3383e 100644 --- a/src/tube-dbus.c +++ b/src/tube-dbus.c @@ -128,6 +128,7 @@ enum PROP_REQUESTED, PROP_TARGET_ID, PROP_INITIATOR_ID, + PROP_SUPPORTED_ACCESS_CONTROLS, LAST_PROPERTY }; @@ -147,6 +148,9 @@ struct _SalutTubeDBusPrivate TpHandle initiator; gchar *service; GHashTable *parameters; + TpSocketAccessControl access_control; + /* GArray of guint */ + GArray *supported_access_controls; /* our unique D-Bus name on the virtual tube bus */ gchar *dbus_local_name; @@ -565,6 +569,7 @@ salut_tube_dbus_finalize (GObject *object) g_free (priv->stream_id); g_free (priv->service); g_hash_table_destroy (priv->parameters); + g_array_free (priv->supported_access_controls, TRUE); G_OBJECT_CLASS (salut_tube_dbus_parent_class)->finalize (object); } @@ -667,11 +672,8 @@ salut_tube_dbus_get_property (GObject *object, TP_IFACE_CHANNEL, "InitiatorID", TP_IFACE_CHANNEL, "Requested", TP_IFACE_CHANNEL, "Interfaces", - /* - * FIXME TP_IFACE_CHANNEL_TYPE_DBUS_TUBE, "ServiceName", TP_IFACE_CHANNEL_TYPE_DBUS_TUBE, "SupportedAccessControls", - */ NULL); if (priv->initiator != priv->self_handle) @@ -720,6 +722,9 @@ salut_tube_dbus_get_property (GObject *object, tp_handle_inspect (repo, priv->handle)); } break; + case PROP_SUPPORTED_ACCESS_CONTROLS: + g_value_set_boxed (value, priv->supported_access_controls); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -814,6 +819,7 @@ salut_tube_dbus_constructor (GType type, DBusGConnection *bus; TpHandleRepoIface *contact_repo; TpHandleRepoIface *handles_repo; + TpSocketAccessControl access_control; obj = G_OBJECT_CLASS (salut_tube_dbus_parent_class)-> constructor (type, n_props, props); @@ -897,6 +903,16 @@ salut_tube_dbus_constructor (GType type, priv->reassembly_bytes_needed = 0; } + /* default access control is Credentials as that's the one used by the old + * tube API */ + priv->access_control = TP_SOCKET_ACCESS_CONTROL_CREDENTIALS; + + /* Set SupportedAccessesControl */ + priv->supported_access_controls = g_array_sized_new (FALSE, FALSE, + sizeof (guint), 1); + access_control = TP_SOCKET_ACCESS_CONTROL_CREDENTIALS; + g_array_append_val (priv->supported_access_controls, access_control); + return obj; } @@ -1065,6 +1081,15 @@ salut_tube_dbus_class_init (SalutTubeDBusClass *salut_tube_dbus_class) G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); g_object_class_install_property (object_class, PROP_REQUESTED, param_spec); + param_spec = g_param_spec_boxed ( + "supported-access-controls", + "Supported access-controls", + "GArray containing supported access controls.", + DBUS_TYPE_G_UINT_ARRAY, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (object_class, + PROP_SUPPORTED_ACCESS_CONTROLS, param_spec); + signals[OPENED] = g_signal_new ("tube-opened", G_OBJECT_CLASS_TYPE (salut_tube_dbus_class), |