+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
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);
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;
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);
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);
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;
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."));
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;
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;
}
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;
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;
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);
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);
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);
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;
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 {
* 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;
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;
}
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;
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;
}
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;
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;
}
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;
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. */
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;
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;
}
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;
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;
}
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);