[evolution-ews] Function for embedding the attachment id in the attachment uri (move file to a new location)
- From: Or Goshen <ogosh src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews] Function for embedding the attachment id in the attachment uri (move file to a new location)
- Date: Mon, 18 Jul 2011 12:40:26 +0000 (UTC)
commit 7cb787acd4a063564c4e5be9487d86abbb6edaa5
Author: Or Goshen <orx goshen intel com>
Date: Sun Jul 17 11:07:41 2011 +0300
Function for embedding the attachment id in the attachment uri (move file to a new location)
src/server/e-ews-item.c | 25 +++++++++++++++++++++++++
src/server/e-ews-item.h | 1 +
2 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/src/server/e-ews-item.c b/src/server/e-ews-item.c
index b3295ee..48d0ed6 100644
--- a/src/server/e-ews-item.c
+++ b/src/server/e-ews-item.c
@@ -1273,6 +1273,31 @@ e_ews_item_get_attachments_ids(EEwsItem *item)
}
gchar *
+e_ews_embed_attachment_id_in_uri (const gchar *olduri, const char *attach_id)
+{
+ gchar *tmpdir, *tmpfilename, filename[350], dirname[350], *name;
+
+ tmpfilename = g_filename_from_uri (olduri, NULL, NULL);
+
+ name = g_strrstr (tmpfilename, "/")+1;
+ tmpdir = g_strndup(tmpfilename, g_strrstr (tmpfilename, "/") - tmpfilename);
+
+ snprintf (dirname, 350, "%s/%s", tmpdir, attach_id);
+ if (g_mkdir (dirname, 0775) == -1) {
+ g_warning("Failed create directory to place file in [%s]: %s\n", dirname, strerror (errno));
+ }
+
+ snprintf(filename, 350, "%s/%s", dirname, name);
+ if (g_rename (tmpfilename, filename) != 0) {
+ g_warning("Failed to move attachment cache file [%s -> %s]: %s\n", tmpfilename, filename, strerror (errno));
+ }
+
+ g_free(tmpdir);
+
+ return g_filename_to_uri(filename, NULL, NULL);
+}
+
+gchar *
e_ews_dump_file_attachment_from_soap_parameter (ESoapParameter *param, const gchar *cache)
{
ESoapParameter *subparam;
diff --git a/src/server/e-ews-item.h b/src/server/e-ews-item.h
index cf3be10..aefc17f 100644
--- a/src/server/e-ews-item.h
+++ b/src/server/e-ews-item.h
@@ -149,6 +149,7 @@ EwsMailbox *
const GSList * e_ews_item_get_modified_occurrences
(EEwsItem *item);
+gchar * e_ews_embed_attachment_id_in_uri (const gchar *olduri, const char *attach_id);
GSList * e_ews_item_get_attachments_ids
(EEwsItem *item);
gchar *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]