[telepathy-gabble/master] add a second FT channel class adversting we support MD5 hashes
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Mon Mar 30 08:23:26 PDT 2009
---
src/ft-manager.c | 13 ++++++++++++-
.../twisted/file-transfer/file_transfer_helper.py | 13 +++++++++++--
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/ft-manager.c b/src/ft-manager.c
index ec6b4aa..a99d84c 100644
--- a/src/ft-manager.c
+++ b/src/ft-manager.c
@@ -421,12 +421,13 @@ static const gchar * const file_transfer_channel_fixed_properties[] = {
static const gchar * const file_transfer_channel_allowed_properties[] =
{
+ /* ContentHashType has to be first so we can easily skip it when needed */
+ TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER ".ContentHashType",
TP_IFACE_CHANNEL ".TargetHandle",
TP_IFACE_CHANNEL ".TargetID",
TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER ".ContentType",
TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER ".Filename",
TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER ".Size",
- TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER ".ContentHashType",
TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER ".ContentHash",
TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER ".Description",
TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER ".Date",
@@ -441,6 +442,7 @@ gabble_ft_manager_foreach_channel_class (TpChannelManager *manager,
GHashTable *table;
GValue *value;
+ /* general FT class */
table = g_hash_table_new_full (g_str_hash, g_str_equal,
NULL, (GDestroyNotify) tp_g_value_slice_free);
@@ -455,6 +457,15 @@ gabble_ft_manager_foreach_channel_class (TpChannelManager *manager,
func (manager, table, file_transfer_channel_allowed_properties,
user_data);
+ /* MD5 HashType class */
+ g_hash_table_insert (table,
+ TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER ".ContentHashType",
+ tp_g_value_slice_new_uint (TP_FILE_HASH_TYPE_MD5));
+
+ /* skip ContentHashType in allowed properties */
+ func (manager, table, file_transfer_channel_allowed_properties + 1,
+ user_data);
+
g_hash_table_destroy (table);
}
diff --git a/tests/twisted/file-transfer/file_transfer_helper.py b/tests/twisted/file-transfer/file_transfer_helper.py
index 8b77878..583f032 100644
--- a/tests/twisted/file-transfer/file_transfer_helper.py
+++ b/tests/twisted/file-transfer/file_transfer_helper.py
@@ -263,11 +263,20 @@ class SendFileTest(FileTransferTest):
properties = self.conn.GetAll(cs.CONN_IFACE_REQUESTS,
dbus_interface=cs.PROPERTIES_IFACE)
+ # general FT class
assert ({cs.CHANNEL_TYPE: cs.CHANNEL_TYPE_FILE_TRANSFER,
cs.TARGET_HANDLE_TYPE: cs.HT_CONTACT},
+ [cs.FT_CONTENT_HASH_TYPE, cs.TARGET_HANDLE, cs.TARGET_ID, cs.FT_CONTENT_TYPE,
+ cs.FT_FILENAME, cs.FT_SIZE, cs.FT_CONTENT_HASH, cs.FT_DESCRIPTION, cs.FT_DATE]
+ ) in properties.get('RequestableChannelClasses'),\
+ properties['RequestableChannelClasses']
+
+ # FT class with MD5 as HashType
+ assert ({cs.CHANNEL_TYPE: cs.CHANNEL_TYPE_FILE_TRANSFER,
+ cs.TARGET_HANDLE_TYPE: cs.HT_CONTACT,
+ cs.FT_CONTENT_HASH_TYPE: cs.FILE_HASH_TYPE_MD5},
[cs.TARGET_HANDLE, cs.TARGET_ID, cs.FT_CONTENT_TYPE, cs.FT_FILENAME,
- cs.FT_SIZE, cs.FT_CONTENT_HASH_TYPE, cs.FT_CONTENT_HASH,
- cs.FT_DESCRIPTION, cs.FT_DATE]
+ cs.FT_SIZE, cs.FT_CONTENT_HASH, cs.FT_DESCRIPTION, cs.FT_DATE]
) in properties.get('RequestableChannelClasses'),\
properties['RequestableChannelClasses']
--
1.5.6.5
More information about the telepathy-commits
mailing list