Only set the X-Evolution-* header if that value is non-NULL.

2001-04-22  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (composer_get_message): Only set the
	X-Evolution-* header if that value is non-NULL.

	* mail-ops.c (mail_send_message): Lets do proper refcounting on
	the sent-folder. Also, g_strdup() the sent_folder_uri since we
	later free it. If we don't, then we get lovely corrupt memory.

svn path=/trunk/; revision=9498
This commit is contained in:
Jeffrey Stedfast
2001-04-23 02:15:45 +00:00
committed by Jeffrey Stedfast
parent 29b0f2cffc
commit dfc8e2ad3f
3 changed files with 33 additions and 12 deletions

View File

@ -1,5 +1,12 @@
2001-04-22 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (composer_get_message): Only set the
X-Evolution-* header if that value is non-NULL.
* mail-ops.c (mail_send_message): Lets do proper refcounting on
the sent-folder. Also, g_strdup() the sent_folder_uri since we
later free it. If we don't, then we get lovely corrupt memory.
* mail-crypto.c (mail_crypto_pgp_mime_part_sign): Make sure we
have a context before we try and use it.

View File

@ -330,9 +330,17 @@ composer_get_message (EMsgComposer *composer)
/* Add info about the sending account */
account = e_msg_composer_get_preferred_account (composer);
if (account) {
camel_medium_set_header (CAMEL_MEDIUM (message), "X-Evolution-Account", account->name);
camel_medium_set_header (CAMEL_MEDIUM (message), "X-Evolution-Transport", account->transport->url);
camel_medium_set_header (CAMEL_MEDIUM (message), "X-Evolution-Fcc", account->sent_folder_uri);
if (account->name)
camel_medium_set_header (CAMEL_MEDIUM (message), "X-Evolution-Account",
account->name);
if (account->transport && account->transport->url)
camel_medium_set_header (CAMEL_MEDIUM (message), "X-Evolution-Transport",
account->transport->url);
if (account->sent_folder_uri)
camel_medium_set_header (CAMEL_MEDIUM (message), "X-Evolution-Fcc",
account->sent_folder_uri);
}
return message;

View File

@ -502,31 +502,33 @@ mail_send_message(CamelMimeMessage *message, const char *destination, CamelFilte
header = camel_medium_get_header (CAMEL_MEDIUM (message), "X-Evolution-Account");
if (header) {
const MailConfigAccount *account;
account = mail_config_get_account_by_name (header);
camel_medium_remove_header (CAMEL_MEDIUM (message), "X-Evolution-Account");
if (account) {
transport_url = g_strdup (account->transport->url);
camel_medium_remove_header (CAMEL_MEDIUM (message), "X-Evolution-Transport");
sent_folder_uri = account->sent_folder_uri;
sent_folder_uri = g_strdup (account->sent_folder_uri);
camel_medium_remove_header (CAMEL_MEDIUM (message), "X-Evolution-Fcc");
}
}
if (!transport_url) {
header = camel_medium_get_header (CAMEL_MEDIUM (message), "X-Evolution-Transport");
if (header) {
transport_url = g_strstrip(g_strdup (header));
transport_url = g_strstrip (g_strdup (header));
camel_medium_remove_header (CAMEL_MEDIUM (message), "X-Evolution-Transport");
}
}
if (!sent_folder_uri) {
header = camel_medium_get_header (CAMEL_MEDIUM (message), "X-Evolution-Fcc");
if (header) {
sent_folder_uri = g_strstrip(g_strdup (header));
sent_folder_uri = g_strstrip (g_strdup (header));
camel_medium_remove_header (CAMEL_MEDIUM (message), "X-Evolution-Fcc");
}
}
xport = camel_session_get_transport (session, transport_url ? transport_url : destination, ex);
g_free (transport_url);
if (!xport) {
@ -553,13 +555,18 @@ mail_send_message(CamelMimeMessage *message, const char *destination, CamelFilte
folder = mail_tool_uri_to_folder (sent_folder_uri, NULL);
if (!folder) {
/* FIXME */
camel_object_ref (CAMEL_OBJECT (sent_folder));
folder = sent_folder;
}
} else
} else {
camel_object_ref (CAMEL_OBJECT (sent_folder));
folder = sent_folder;
if (folder)
}
if (folder) {
camel_folder_append_message (folder, message, info, ex);
camel_object_unref (CAMEL_OBJECT (folder));
}
camel_message_info_free (info);
}
@ -997,7 +1004,6 @@ add_vtrash_info (CamelFolderInfo *info)
g_return_if_fail (info != NULL);
for (fi = info; fi->sibling; fi = fi->sibling) {
g_warning ("add_vtrash_info(): url is %s", fi->url);
if (!strcmp (fi->name, _("Trash")))
break;
}