[evolution-data-server] Bug #603044 (bnc) -Issues with Forward as redirect
- From: Bharath Acharya <abharath src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug #603044 (bnc) -Issues with Forward as redirect
- Date: Wed, 8 Sep 2010 11:04:02 +0000 (UTC)
commit 36ba3b42c643c408dff9d0633fd304813c824054
Author: Chenthill Palanisamy <pchenthill novell com>
Date: Wed Sep 8 16:32:26 2010 +0530
Bug #603044 (bnc) -Issues with Forward as redirect
Forward as redirect does not work properly. Parse the RESENT_* headers
to check if its a redirected email.
Bug Report:
Select a message to be forwarded as a redirect and regardless of which
e-mail address I redirect the message to, it always gets sent to myself.
camel/providers/groupwise/camel-groupwise-utils.c | 41 ++++++++++++++++-----
1 files changed, 31 insertions(+), 10 deletions(-)
---
diff --git a/camel/providers/groupwise/camel-groupwise-utils.c b/camel/providers/groupwise/camel-groupwise-utils.c
index 9f829b6..2613510 100644
--- a/camel/providers/groupwise/camel-groupwise-utils.c
+++ b/camel/providers/groupwise/camel-groupwise-utils.c
@@ -374,6 +374,34 @@ send_as_attachment (EGwConnection *cnc, EGwItem *item, CamelStream *content, Cam
*attach_list = g_slist_append (*attach_list, attachment);
}
+static GSList *
+populate_recipients (CamelMimeMessage *message, EGwItem *item, gboolean redirect)
+{
+ GSList *recipient_list = NULL;
+ CamelAddress *recipients;
+
+ if (redirect)
+ recipients = CAMEL_ADDRESS (camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_RESENT_TO));
+ else
+ recipients = CAMEL_ADDRESS (camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_TO));
+ recipient_list=add_recipients(recipient_list,recipients,E_GW_ITEM_RECIPIENT_TO);
+
+ if (redirect)
+ recipients = CAMEL_ADDRESS (camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_RESENT_CC));
+ else
+ recipients = CAMEL_ADDRESS (camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_CC));
+ recipient_list=add_recipients(recipient_list,recipients,E_GW_ITEM_RECIPIENT_CC);
+
+ if (redirect)
+ recipients = CAMEL_ADDRESS (camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_RESENT_BCC));
+ else
+ recipients = CAMEL_ADDRESS (camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_BCC));
+ recipient_list=add_recipients(recipient_list,recipients,E_GW_ITEM_RECIPIENT_BC);
+ recipient_list = g_slist_reverse (recipient_list);
+
+ return recipient_list;
+}
+
EGwItem *
camel_groupwise_util_item_from_message (EGwConnection *cnc, CamelMimeMessage *message, CamelAddress *from)
{
@@ -383,21 +411,14 @@ camel_groupwise_util_item_from_message (EGwConnection *cnc, CamelMimeMessage *me
gchar *send_options = NULL;
CamelMultipart *mp;
GSList *recipient_list = NULL, *attach_list = NULL;
- CamelAddress *recipients;
/*Egroupwise item*/
item = e_gw_item_new_empty ();
/*populate recipient list*/
- recipients = CAMEL_ADDRESS (camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_TO));
- recipient_list=add_recipients(recipient_list,recipients,E_GW_ITEM_RECIPIENT_TO);
-
- recipients = CAMEL_ADDRESS (camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_CC));
- recipient_list=add_recipients(recipient_list,recipients,E_GW_ITEM_RECIPIENT_CC);
-
- recipients = CAMEL_ADDRESS (camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_BCC));
- recipient_list=add_recipients(recipient_list,recipients,E_GW_ITEM_RECIPIENT_BC);
- recipient_list = g_slist_reverse (recipient_list);
+ recipient_list = populate_recipients (message, item, TRUE);
+ if (recipient_list == NULL)
+ recipient_list = populate_recipients (message, item, FALSE);
/** Get the mime parts from CamelMimemessge **/
mp = (CamelMultipart *)camel_medium_get_content (CAMEL_MEDIUM (message));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]