Same as imap4-folder changes. (imap4_disconnect): Same.
authorJeffrey Stedfast <fejj@novell.com>
Fri, 7 Jan 2005 20:24:53 +0000 (20:24 +0000)
committerJeffrey Stedfast <fejj@src.gnome.org>
Fri, 7 Jan 2005 20:24:53 +0000 (20:24 +0000)
2005-01-07  Jeffrey Stedfast  <fejj@novell.com>

* providers/imap4/camel-imap4-store.c (imap4_connect): Same as
imap4-folder changes.
(imap4_disconnect): Same.
(imap4_get_folder): Same.
(imap4_query_auth_types): Same.
(imap4_create_folder): Same.
(imap4_delete_folder): Same.
(imap4_rename_folder): Same.
(imap4_subscribe_folder): Same.
(imap4_unsubscribe_folder): Same.

* providers/imap4/camel-imap4-folder.c (camel_imap4_folder_new):
Instead of checking the session online state, check the
OfflineStore network availability state.
(imap4_sync): Same.
(imap4_refresh_info): Same.
(imap4_get_message): Here too.
(imap4_append_message): Same.
(imap4_transfer_messages_to): Same.

camel/ChangeLog
camel/camel-offline-folder.c
camel/providers/imap4/camel-imap4-folder.c
camel/providers/imap4/camel-imap4-store.c

index 304930b..e35328a 100644 (file)
@@ -1,3 +1,25 @@
+2005-01-07  Jeffrey Stedfast  <fejj@novell.com>
+
+       * providers/imap4/camel-imap4-store.c (imap4_connect): Same as
+       imap4-folder changes.
+       (imap4_disconnect): Same.
+       (imap4_get_folder): Same.
+       (imap4_query_auth_types): Same.
+       (imap4_create_folder): Same.
+       (imap4_delete_folder): Same.
+       (imap4_rename_folder): Same.
+       (imap4_subscribe_folder): Same.
+       (imap4_unsubscribe_folder): Same.
+
+       * providers/imap4/camel-imap4-folder.c (camel_imap4_folder_new):
+       Instead of checking the session online state, check the
+       OfflineStore network availability state.
+       (imap4_sync): Same.
+       (imap4_refresh_info): Same.
+       (imap4_get_message): Here too.
+       (imap4_append_message): Same.
+       (imap4_transfer_messages_to): Same.
+
 2005-01-07  Parthasarathi Susarla <sparthasarathi@novell.com>
        
        * providers/groupwise/camel-groupwise-transport.c
index a190d22..9f70273 100644 (file)
@@ -44,7 +44,7 @@ static void offline_folder_downsync (CamelOfflineFolder *offline, const char *ex
 
 static CamelFolderClass *parent_class = NULL;
 
-static GSList *offline_folder_props;
+static GSList *offline_folder_props = NULL;
 
 static CamelProperty offline_prop_list[] = {
        { CAMEL_OFFLINE_FOLDER_SYNC_OFFLINE, "sync_offline", N_("Copy folder content locally for offline operation") },
index 79611e0..b4abe39 100644 (file)
@@ -286,7 +286,7 @@ camel_imap4_folder_new (CamelStore *store, const char *full_name, CamelException
        
        imap4_folder->search = camel_imap4_search_new (((CamelIMAP4Store *) store)->engine, imap4_folder->cachedir);
        
-       if (camel_session_is_online (((CamelService *) store)->session)) {
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_AVAIL) {
                /* we don't care if the summary loading fails here */
                camel_folder_summary_load (folder->summary);
                
@@ -450,7 +450,7 @@ static void
 imap4_sync (CamelFolder *folder, gboolean expunge, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) folder->parent_store)->engine;
-       CamelSession *session = ((CamelService *) folder->parent_store)->session;
+       CamelOfflineStore *offline = (CamelOfflineStore *) folder->parent_store;
        CamelIMAP4MessageInfo *iinfo;
        CamelMessageInfo *info;
        CamelIMAP4Command *ic;
@@ -459,7 +459,7 @@ imap4_sync (CamelFolder *folder, gboolean expunge, CamelException *ex)
        int id, max, i;
        int retval;
        
-       if (!camel_session_is_online (session))
+       if (offline->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL)
                return;
        
        CAMEL_SERVICE_LOCK (folder->parent_store, connect_lock);
@@ -541,12 +541,12 @@ static void
 imap4_refresh_info (CamelFolder *folder, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) folder->parent_store)->engine;
-       CamelSession *session = ((CamelService *) folder->parent_store)->session;
+       CamelOfflineStore *offline = (CamelOfflineStore *) folder->parent_store;
        CamelFolder *selected = (CamelFolder *) engine->folder;
        CamelIMAP4Command *ic;
        int id;
        
-       if (!camel_session_is_online (session))
+       if (offline->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL)
                return;
        
        CAMEL_SERVICE_LOCK (folder->parent_store, connect_lock);
@@ -678,7 +678,7 @@ static CamelMimeMessage *
 imap4_get_message (CamelFolder *folder, const char *uid, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) folder->parent_store)->engine;
-       CamelSession *session = ((CamelService *) folder->parent_store)->session;
+       CamelOfflineStore *offline = (CamelOfflineStore *) folder->parent_store;
        CamelIMAP4Folder *imap4_folder = (CamelIMAP4Folder *) folder;
        CamelMimeMessage *message = NULL;
        CamelStream *stream, *cache;
@@ -713,7 +713,7 @@ imap4_get_message (CamelFolder *folder, const char *uid, CamelException *ex)
                return message;
        }
        
-       if (!camel_session_is_online (session)) {
+       if (offline->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
                CAMEL_SERVICE_UNLOCK (folder->parent_store, connect_lock);
                camel_exception_set (ex, CAMEL_EXCEPTION_SERVICE_UNAVAILABLE,
                                     _("This message is not available in offline mode."));
@@ -801,7 +801,7 @@ imap4_append_message (CamelFolder *folder, CamelMimeMessage *message,
                      const CamelMessageInfo *info, char **appended_uid, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) folder->parent_store)->engine;
-       CamelSession *session = ((CamelService *) folder->parent_store)->session;
+       CamelOfflineStore *offline = (CamelOfflineStore *) folder->parent_store;
        CamelIMAP4Summary *summary = (CamelIMAP4Summary *) folder->summary;
        const CamelIMAP4MessageInfo *iinfo = (const CamelIMAP4MessageInfo *) info;
        CamelIMAP4Folder *imap4_folder = (CamelIMAP4Folder *) folder;
@@ -817,7 +817,7 @@ imap4_append_message (CamelFolder *folder, CamelMimeMessage *message,
        if (appended_uid)
                *appended_uid = NULL;
        
-       if (!camel_session_is_online (session)) {
+       if (offline->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
                camel_imap4_journal_append ((CamelIMAP4Journal *) imap4_folder->journal, message, info, appended_uid, ex);
                return;
        }
@@ -970,7 +970,7 @@ imap4_transfer_messages_to (CamelFolder *src, GPtrArray *uids, CamelFolder *dest
                            GPtrArray **transferred_uids, gboolean move, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) src->parent_store)->engine;
-       CamelSession *session = ((CamelService *) src->parent_store)->session;
+       CamelOfflineStore *offline = (CamelOfflineStore *) src->parent_store;
        int i, j, n, id, dest_namelen;
        CamelMessageInfo *info;
        CamelIMAP4Command *ic;
@@ -998,7 +998,7 @@ imap4_transfer_messages_to (CamelFolder *src, GPtrArray *uids, CamelFolder *dest
        CAMEL_SERVICE_LOCK (src->parent_store, connect_lock);
        
        /* check for offline operation */
-       if (!camel_session_is_online (session)) {
+       if (offline->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
                CamelIMAP4Journal *journal = (CamelIMAP4Journal *) ((CamelIMAP4Folder *) dest)->journal;
                CamelMimeMessage *message;
                
index 3bfb4e3..d5a8f83 100644 (file)
@@ -539,7 +539,7 @@ imap4_connect (CamelService *service, CamelException *ex)
        CamelIMAP4Store *store = (CamelIMAP4Store *) service;
        gboolean retval;
        
-       if (!camel_session_is_online (service->session))
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL)
                return TRUE;
        
        CAMEL_SERVICE_LOCK (service, connect_lock);
@@ -559,7 +559,7 @@ imap4_disconnect (CamelService *service, gboolean clean, CamelException *ex)
        CamelIMAP4Command *ic;
        int id;
        
-       if (!camel_session_is_online (service->session))
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL)
                return TRUE;
        
        CAMEL_SERVICE_LOCK (store, connect_lock);
@@ -585,7 +585,7 @@ imap4_query_auth_types (CamelService *service, CamelException *ex)
        GList *sasl_types, *t, *next;
        gboolean connected;
        
-       if (!camel_session_is_online (service->session))
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL)
                return NULL;
        
        CAMEL_SERVICE_LOCK (store, connect_lock);
@@ -652,7 +652,6 @@ static CamelFolder *
 imap4_get_folder (CamelStore *store, const char *folder_name, guint32 flags, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) store)->engine;
-       CamelSession *session = ((CamelService *) store)->session;
        CamelFolder *folder = NULL;
        camel_imap4_list_t *list;
        CamelIMAP4Command *ic;
@@ -664,7 +663,7 @@ imap4_get_folder (CamelStore *store, const char *folder_name, guint32 flags, Cam
        
        CAMEL_SERVICE_LOCK (store, connect_lock);
        
-       if (!camel_session_is_online (session)) {
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
                if ((flags & CAMEL_STORE_FOLDER_CREATE) != 0) {
                        camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot create IMAP folders in offline mode."));
                } else {
@@ -753,7 +752,6 @@ imap4_create_folder (CamelStore *store, const char *parent_name, const char *fol
         * contain subfolders - delete them and re-create with the
         * proper hint */
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) store)->engine;
-       CamelSession *session = ((CamelService *) store)->session;
        CamelFolderInfo *fi = NULL;
        CamelIMAP4Command *ic;
        char *utf7_name;
@@ -778,7 +776,7 @@ imap4_create_folder (CamelStore *store, const char *parent_name, const char *fol
                c++;
        }
        
-       if (!camel_session_is_online (session)) {
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
                camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot create IMAP folders in offline mode."));
                return NULL;
        }
@@ -854,7 +852,6 @@ static void
 imap4_delete_folder (CamelStore *store, const char *folder_name, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) store)->engine;
-       CamelSession *session = ((CamelService *) store)->session;
        CamelFolder *selected = (CamelFolder *) engine->folder;
        CamelIMAP4Command *ic, *ic0 = NULL;
        CamelFolderInfo *fi;
@@ -871,7 +868,7 @@ imap4_delete_folder (CamelStore *store, const char *folder_name, CamelException
                return;
        }
        
-       if (!camel_session_is_online (session)) {
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
                camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot delete IMAP folders in offline mode."));
                return;
        }
@@ -950,7 +947,6 @@ static void
 imap4_rename_folder (CamelStore *store, const char *old_name, const char *new_name, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) store)->engine;
-       CamelSession *session = ((CamelService *) store)->session;
        char *old_uname, *new_uname;
        CamelIMAP4Command *ic;
        int id;
@@ -963,7 +959,7 @@ imap4_rename_folder (CamelStore *store, const char *old_name, const char *new_na
                return;
        }
        
-       if (!camel_session_is_online (session)) {
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
                camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot rename IMAP folders in offline mode."));
                return;
        }
@@ -1160,7 +1156,6 @@ static CamelFolderInfo *
 imap4_get_folder_info (CamelStore *store, const char *top, guint32 flags, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) store)->engine;
-       CamelSession *session = ((CamelService *) store)->session;
        CamelIMAP4Command *ic, *ic0 = NULL;
        CamelFolderInfo *fi = NULL;
        camel_imap4_list_t *list;
@@ -1175,9 +1170,10 @@ imap4_get_folder_info (CamelStore *store, const char *top, guint32 flags, CamelE
        
        CAMEL_SERVICE_LOCK (store, connect_lock);
        
-       if (!camel_session_is_online (session) || engine->state == CAMEL_IMAP4_ENGINE_DISCONNECTED) {
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL
+           || engine->state == CAMEL_IMAP4_ENGINE_DISCONNECTED) {
                fi = camel_imap4_store_summary_get_folder_info (((CamelIMAP4Store *) store)->summary, top, flags);
-               if (fi == NULL && camel_session_is_online (session)) {
+               if (fi == NULL && ((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_AVAIL) {
                        /* folder info hasn't yet been cached and the store hasn't been
                         * connected yet, but the network is available so we can connect
                         * and query the server. */
@@ -1281,7 +1277,6 @@ static void
 imap4_subscribe_folder (CamelStore *store, const char *folder_name, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) store)->engine;
-       CamelSession *session = ((CamelService *) store)->session;
        CamelIMAP4Command *ic;
        CamelFolderInfo *fi;
        char *utf7_name;
@@ -1289,7 +1284,7 @@ imap4_subscribe_folder (CamelStore *store, const char *folder_name, CamelExcepti
        const char *p;
        int id;
        
-       if (!camel_session_is_online (session)) {
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
                camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot subscribe to IMAP folders in offline mode."));
                return;
        }
@@ -1354,7 +1349,6 @@ static void
 imap4_unsubscribe_folder (CamelStore *store, const char *folder_name, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) store)->engine;
-       CamelSession *session = ((CamelService *) store)->session;
        CamelIMAP4Command *ic;
        CamelFolderInfo *fi;
        char *utf7_name;
@@ -1362,7 +1356,7 @@ imap4_unsubscribe_folder (CamelStore *store, const char *folder_name, CamelExcep
        const char *p;
        int id;
        
-       if (!camel_session_is_online (session)) {
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
                camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot unsubscribe from IMAP folders in offline mode."));
                return;
        }
@@ -1427,12 +1421,11 @@ static void
 imap4_noop (CamelStore *store, CamelException *ex)
 {
        CamelIMAP4Engine *engine = ((CamelIMAP4Store *) store)->engine;
-       CamelSession *session = ((CamelService *) store)->session;
        CamelFolder *folder = (CamelFolder *) engine->folder;
        CamelIMAP4Command *ic;
        int id;
        
-       if (!camel_session_is_online (session))
+       if (((CamelOfflineStore *) store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL)
                return;
        
        CAMEL_SERVICE_LOCK (store, connect_lock);