IMAPX_DISCONNECTED,
IMAPX_CONNECTED,
IMAPX_AUTHENTICATED,
+ IMAPX_INITIALISED,
IMAPX_SELECTED
};
static gboolean
imapx_register_job (CamelIMAPXServer *is, CamelIMAPXJob *job)
{
- if (is->state >= IMAPX_AUTHENTICATED) {
+ if (is->state >= IMAPX_INITIALISED) {
QUEUE_LOCK (is);
camel_dlist_addhead (&is->jobs, (CamelDListNode *)job);
QUEUE_UNLOCK (is);
is->mode = 0;
/* Hrm, what about reconnecting? */
- is->state = IMAPX_AUTHENTICATED;
+ is->state = IMAPX_INITIALISED;
ic = camel_imapx_command_new("SELECT", NULL, "SELECT %f", folder);
ic->complete = imapx_command_select_done;
imapx_store->dir_sep = ns->sep;
}
- if (!camel_exception_is_set (ex))
+ if (!camel_exception_is_set (ex)) {
+ is->state = IMAPX_INITIALISED;
return;
+ }
exception:
imapx_disconnect (is);
camel_service_lock (CAMEL_SERVICE (is->store), CAMEL_SERVICE_REC_CONNECT_LOCK);
if (connect) {
- if (is->state == IMAPX_AUTHENTICATED || is->state == IMAPX_SELECTED) {
+ if (is->state >= IMAPX_INITIALISED) {
ret = TRUE;
goto exit;
}