[evolution-ews] Randomize the URI of an attachment using the attachment id instead of using a randomizing function
- From: Or Goshen <ogosh src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews] Randomize the URI of an attachment using the attachment id instead of using a randomizing function
- Date: Thu, 14 Jul 2011 08:11:57 +0000 (UTC)
commit fc93cbb2f6e40fa82cd49d7c105d841698e67e18
Author: Or Goshen <orx goshen intel com>
Date: Thu Jul 14 11:22:31 2011 +0300
Randomize the URI of an attachment using the attachment id instead of using a randomizing function
src/server/e-ews-item.c | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
---
diff --git a/src/server/e-ews-item.c b/src/server/e-ews-item.c
index c49376f..028612e 100644
--- a/src/server/e-ews-item.c
+++ b/src/server/e-ews-item.c
@@ -1238,7 +1238,7 @@ e_ews_dump_file_attachment_from_soap_parameter (ESoapParameter *param, const gch
{
ESoapParameter *subparam;
const gchar *param_name;
- gchar *name = NULL, *value, filename[350], *surename, dirname[350];
+ gchar *name = NULL, *value, filename[350], *surename, dirname[350], *attach_id = NULL;
guchar *content = NULL;
gsize data_len = 0;
gchar *tmpdir, *tmpfilename;
@@ -1255,24 +1255,24 @@ e_ews_dump_file_attachment_from_soap_parameter (ESoapParameter *param, const gch
value = e_soap_parameter_get_string_value (subparam);
content = g_base64_decode (value, &data_len);
g_free (value);
+ } else if (g_ascii_strcasecmp(param_name, "AttachmentId") == 0) {
+ attach_id = e_soap_parameter_get_string_value(subparam);
}
}
/* Make sure we have needed data */
- if (!content || !name) {
+ if (!content || !name || !attach_id) {
g_free(name);
g_free(content);
+ g_free(attach_id);
return NULL;
}
tmpfilename = (gchar *) content;
tmpdir = g_strndup(tmpfilename, g_strrstr (tmpfilename, "/") - tmpfilename);
- snprintf(dirname, 350, "%s/XXXXXX", tmpdir);
- if (!mkdtemp(dirname))
- g_warning ("Failed to create directory for attachment cache");
surename = g_uri_escape_string(name, "", TRUE);
- snprintf(filename, 350, "%s/%s", dirname, surename);
+ snprintf(filename, 350, "%s/%s/%s", dirname, attach_id, surename);
if (g_rename (tmpfilename, filename) != 0) {
g_warning("Failed to move attachment cache file");
@@ -1282,6 +1282,7 @@ e_ews_dump_file_attachment_from_soap_parameter (ESoapParameter *param, const gch
g_free(surename);
g_free(name);
g_free(content);
+ g_free(attach_id);
/* Return URI to saved file */
return g_filename_to_uri(filename, NULL, NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]