aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog10
-rw-r--r--mail/mail-send-recv.c5
-rw-r--r--mail/mail-vtrash.c16
3 files changed, 24 insertions, 7 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 08b4a4be9b..4863495dac 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,10 @@
+2001-02-23 Not Zed <NotZed@Ximian.com>
+
+ * mail-send-recv.c (build_dialogue): Only allow downloading if the
+ source is enabled at this time.
+ (mail_autoreceive_setup): Check for enabled sources before setting
+ up autodownload.
+
2001-02-22 Jeffrey Stedfast <fejj@ximian.com>
* mail-accounts.c (construct): Construct the PGP Path
@@ -15,6 +22,9 @@
* mail-vtrash.c (get_trash_get): Setup the operation registration,
and create a pseudo "start/stop" operation.
+ (get_trash_free): Free store if we have it.
+ (get_trash_got): Move vtrash add into here, so we execute in the
+ right thread.
* component-factory.c (owner_set_cb): Make trash creation async.
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index 299a07289a..c037568d24 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -228,7 +228,8 @@ static struct _send_data *build_dialogue(GSList *sources, CamelFolder *outbox, c
while (sources) {
MailConfigService *source = sources->data;
- if (!source->url) {
+ if (!source->url
+ || !source->enabled) {
sources = sources->next;
continue;
}
@@ -695,7 +696,7 @@ mail_autoreceive_setup(void)
while (sources) {
MailConfigService *source = sources->data;
- if (source->url && source->auto_check) {
+ if (source->url && source->auto_check && source->enabled) {
struct _auto_data *info;
printf("setting up auto-receive mail for : %s\n", source->url);
diff --git a/mail/mail-vtrash.c b/mail/mail-vtrash.c
index 207e72ef06..b83a7d7c32 100644
--- a/mail/mail-vtrash.c
+++ b/mail/mail-vtrash.c
@@ -120,7 +120,8 @@ vtrash_add (CamelStore *store, CamelFolder *folder, const char *store_uri, const
struct _get_trash_msg {
struct _mail_msg msg;
-
+
+ CamelStore *store;
char *store_uri;
CamelFolder *folder;
void (*done) (char *store_uri, CamelFolder *folder, void *data);
@@ -214,8 +215,8 @@ get_trash_get (struct _mail_msg *mm)
urls = g_ptr_array_new ();
/* we don't want to connect */
- store = (CamelStore *) camel_session_get_service (session, m->store_uri,
- CAMEL_PROVIDER_STORE, &mm->ex);
+ m->store = store = (CamelStore *) camel_session_get_service (session, m->store_uri,
+ CAMEL_PROVIDER_STORE, &mm->ex);
if (store == NULL) {
g_warning ("Couldn't get service %s: %s\n", m->store_uri,
camel_exception_get_description (&mm->ex));
@@ -239,7 +240,6 @@ get_trash_get (struct _mail_msg *mm)
camel_store_free_folder_info (store, info);
m->folder = create_trash_vfolder (_("vTrash"), urls, &mm->ex);
- vtrash_add (store, m->folder, m->store_uri, _("vTrash"));
}
}
@@ -251,6 +251,9 @@ static void
get_trash_got (struct _mail_msg *mm)
{
struct _get_trash_msg *m = (struct _get_trash_msg *)mm;
+
+ if (m->store)
+ vtrash_add (m->store, m->folder, m->store_uri, _("vTrash"));
if (m->done)
m->done (m->store_uri, m->folder, m->data);
@@ -260,7 +263,10 @@ static void
get_trash_free (struct _mail_msg *mm)
{
struct _get_trash_msg *m = (struct _get_trash_msg *)mm;
-
+
+ if (m->store)
+ camel_object_unref (CAMEL_OBJECT (m->store));
+
g_free (m->store_uri);
if (m->folder)
camel_object_unref (CAMEL_OBJECT (m->folder));