summaryrefslogtreecommitdiff
path: root/src/file-transfer-channel.c
diff options
context:
space:
mode:
authorJonny Lamb <jonny.lamb@collabora.co.uk>2011-11-09 19:36:04 +0000
committerJonny Lamb <jonny.lamb@collabora.co.uk>2011-11-09 19:36:04 +0000
commit4c1f77918863361e2b44171f11cc82379b936354 (patch)
tree783f397463438deffaf8d6a72715f980dac2d9ea /src/file-transfer-channel.c
parentcab22c8a694a21b48073f572baf49c907ce2bf9d (diff)
downloadtelepathy-salut-4c1f77918863361e2b44171f11cc82379b936354.tar.gz
metadata: update to new draft
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
Diffstat (limited to 'src/file-transfer-channel.c')
-rw-r--r--src/file-transfer-channel.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/file-transfer-channel.c b/src/file-transfer-channel.c
index c3e901ca..6adba642 100644
--- a/src/file-transfer-channel.c
+++ b/src/file-transfer-channel.c
@@ -37,6 +37,7 @@
#include "file-transfer-channel.h"
#include "signals-marshal.h"
+#include <extensions/_gen/gtypes.h>
#include "connection.h"
#include "im-manager.h"
#include "contact.h"
@@ -873,7 +874,7 @@ salut_file_transfer_channel_class_init (
param_spec = g_param_spec_boxed ("metadata",
"Metadata",
"The Metadata.Metadata property of this channel",
- TP_HASH_TYPE_STRING_STRING_MAP,
+ SALUT_HASH_TYPE_METADATA,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
g_object_class_install_property (object_class, PROP_METADATA,
param_spec);
@@ -1203,13 +1204,15 @@ add_metadata_forms (SalutFileTransferChannel *self,
g_hash_table_iter_init (&iter, self->priv->metadata);
while (g_hash_table_iter_next (&iter, &key, &val))
{
- wocky_node_add_build (x,
- '(', "field",
- '@', "var", key,
- '(', "value",
- '$', val,
- ')',
- ')', NULL);
+ const gchar * const *values = val;
+
+ WockyNode *field = wocky_node_add_child (x, "field");
+ wocky_node_set_attribute (field, "var", key);
+
+ for (; values != NULL && *values != NULL; values++)
+ {
+ wocky_node_add_child_with_content (field, "value", *values);
+ }
}
form = wocky_data_form_new_from_node (x, &error);
@@ -1783,7 +1786,7 @@ extract_metadata (GibberFileTransfer *ft)
return NULL;
metadata = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, g_free);
+ g_free, (GDestroyNotify) g_strfreev);
g_hash_table_iter_init (&iter, form->fields);
while (g_hash_table_iter_next (&iter, &key, &value))
@@ -1796,7 +1799,7 @@ extract_metadata (GibberFileTransfer *ft)
g_hash_table_insert (metadata,
g_strdup (var),
- g_strdup (field->raw_value_contents[0]));
+ g_strdupv (field->raw_value_contents));
}
return metadata;