From 82f32e4f34fbaebb5cf44e494aafb9a8f601c495 Mon Sep 17 00:00:00 2001 From: Jonny Lamb Date: Fri, 21 Nov 2008 16:16:10 +0000 Subject: Added ability to get an md5sum of the file being sent using GChecksum. (Jonny Lamb) Signed-off-by: Jonny Lamb svn path=/trunk/; revision=1774 --- libempathy/empathy-utils.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'libempathy') diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c index c0cba4d73..b62c834fa 100644 --- a/libempathy/empathy-utils.c +++ b/libempathy/empathy-utils.c @@ -795,6 +795,11 @@ empathy_send_file (EmpathyContact *contact, GValue value = { 0 }; gchar *filename; + /* for getting ContentMD5 */ + gsize checksum_length; + gchar *checksum_data; + gchar *checksum_hex; + g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL); g_return_val_if_fail (G_IS_FILE (gfile), NULL); @@ -847,7 +852,24 @@ empathy_send_file (EmpathyContact *contact, &value, NULL, NULL); g_value_reset (&value); - g_value_set_string (&value, "foobar"); + + if (g_file_get_contents (g_file_get_path (gfile), + &checksum_data, &checksum_length, &error)) { + + checksum_hex = g_compute_checksum_for_data (G_CHECKSUM_MD5, + (guchar *) checksum_data, + (gssize) checksum_length); + g_free (checksum_data); + DEBUG ("Got a checksum: %s", checksum_hex); + } else { + DEBUG ("Couldn't get file contents for checksum: %s", + error ? error->message : "No error given"); + g_clear_error (&error); + checksum_hex = ""; + } + + g_value_set_string (&value, checksum_hex); + g_free (checksum_hex); tp_cli_dbus_properties_run_set (TP_PROXY (channel), -1, EMP_IFACE_CHANNEL_TYPE_FILE, "ContentMD5", &value, NULL, NULL); -- cgit v1.2.3