diff options
-rw-r--r-- | mail/ChangeLog | 8 | ||||
-rw-r--r-- | mail/component-factory.c | 9 | ||||
-rw-r--r-- | mail/mail-send-recv.c | 9 |
3 files changed, 15 insertions, 11 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index f0362f2923..01ddde4640 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,7 +1,11 @@ 2002-05-30 Jeffrey Stedfast <fejj@ximian.com> - * component-factory.c (store_disconnect): Protect against NULL - stores. Fixes bug #25456. + * mail-send-recv.c (mail_send_receive): Noop if we are in offline + mode. + + * component-factory.c (mail_remove_storage): If the store is not + in the storage hash, then it must not have ever been added. Fixes + bug #25456. * mail-callbacks.c (view_msg): Oops, create a message-browser window here, not a folder-browser-window window. diff --git a/mail/component-factory.c b/mail/component-factory.c index 07f39faca5..7de338cb95 100644 --- a/mail/component-factory.c +++ b/mail/component-factory.c @@ -1382,10 +1382,8 @@ mail_lookup_storage (CamelStore *store) static void store_disconnect(CamelStore *store, void *event_data, void *data) { - if (store) { - camel_service_disconnect (CAMEL_SERVICE (store), TRUE, NULL); - camel_object_unref (CAMEL_OBJECT (store)); - } + camel_service_disconnect (CAMEL_SERVICE (store), TRUE, NULL); + camel_object_unref (CAMEL_OBJECT (store)); } void @@ -1402,6 +1400,9 @@ mail_remove_storage (CamelStore *store) */ storage = g_hash_table_lookup (storages_hash, store); + if (!storage) + return; + g_hash_table_remove (storages_hash, store); /* so i guess potentially we could have a race, add a store while one diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c index bac7e17f46..7b28435b32 100644 --- a/mail/mail-send-recv.c +++ b/mail/mail-send-recv.c @@ -653,7 +653,10 @@ void mail_send_receive (void) } return; } - + + if (!camel_session_is_online (session)) + return; + sources = mail_config_get_sources(); if (!sources) return; @@ -661,10 +664,6 @@ void mail_send_receive (void) if (!account || !account->transport) return; - /* what to do about pop before smtp ? - Well, probably hook into receive_done or receive_status on - the right pop account, and when it is, then kick off the - smtp one. */ data = build_dialogue(sources, outbox_folder, account->transport->url); scan = data->infos; while (scan) { |