int error;
};
+#define CHECK_IMAP() { \
+ if (!param->imap) { \
+ result->error = MAILIMAP_ERROR_BAD_STATE; \
+ return; \
+ } \
+}
+
static void connect_run(struct etpan_thread_op * op)
{
int r;
param = op->param;
result = op->result;
+ CHECK_IMAP();
+
r = mailimap_socket_connect(param->imap,
param->server, param->port);
param = op->param;
result = op->result;
+ CHECK_IMAP();
+
r = mailimap_ssl_connect(param->imap,
param->server, param->port);
result->error = r;
param = op->param;
result = op->result;
+ CHECK_IMAP();
+
r = mailimap_capability(param->imap, &caps);
result->error = r;
param = op->param;
result = op->result;
+ CHECK_IMAP();
+
r = mailimap_logout(param->imap);
result->error = r;
clist * list;
param = op->param;
+
+ CHECK_IMAP();
+
list = NULL;
r = mailimap_list(param->imap, param->base,
param->wildcard, &list);
param = op->param;
+ CHECK_IMAP();
+
#ifdef DISABLE_LOG_DURING_LOGIN
old_debug = mailstream_debug;
mailstream_debug = 0;
param = op->param;
result = op->result;
+ CHECK_IMAP();
+
r = mailimap_status(param->imap, param->mb,
param->status_att_list,
&result->data_status);
int r;
param = op->param;
+
+ CHECK_IMAP();
+
r = mailimap_noop(param->imap);
result = op->result;
int r;
param = op->param;
+
+ CHECK_IMAP();
+
r = mailimap_starttls(param->imap);
result = op->result;
int r;
param = op->param;
+
+ CHECK_IMAP();
+
r = mailimap_create(param->imap, param->mb);
result = op->result;
int r;
param = op->param;
+
+ CHECK_IMAP();
+
r = mailimap_rename(param->imap, param->mb, param->new_name);
result = op->result;
int r;
param = op->param;
+
+ CHECK_IMAP();
+
r = mailimap_delete(param->imap, param->mb);
result = op->result;
int r;
param = op->param;
+
+ CHECK_IMAP();
+
r = mailimap_select(param->imap, param->mb);
result = op->result;
int r;
param = op->param;
+
+ CHECK_IMAP();
+
r = mailimap_examine(param->imap, param->mb);
result = op->result;
param = op->param;
+ CHECK_IMAP();
+
/* we copy the mailimap_set because freeing the key is recursive */
if (param->set != NULL) {
uid_key = mailimap_search_key_new_uid(sc_mailimap_set_copy(param->set));
param = op->param;
+ CHECK_IMAP();
+
fetch_result = NULL;
r = imap_get_messages_list(param->imap, param->first_index,
&fetch_result);
param = op->param;
+ CHECK_IMAP();
+
content = NULL;
content_size = 0;
if (param->with_body)
param = op->param;
+ CHECK_IMAP();
+
env_list = NULL;
r = imap_get_envelopes_list(param->imap, param->set,
&env_list);
param = op->param;
result = op->result;
+ CHECK_IMAP();
+
r = stat(param->filename, &stat_buf);
if (r < 0) {
result->error = MAILIMAP_ERROR_APPEND;
int r;
param = op->param;
+
+ CHECK_IMAP();
+
r = mailimap_expunge(param->imap);
result = op->result;
struct copy_result * result;
int r;
guint32 val;
- param = op->param;
struct mailimap_set *source = NULL, *dest = NULL;
+
+ param = op->param;
+ CHECK_IMAP();
+
r = mailimap_uidplus_uid_copy(param->imap, param->set, param->mb,
&val, &source, &dest);
param = op->param;
+ CHECK_IMAP();
+
r = mailimap_uid_store(param->imap, param->set,
param->store_att_flags);
param = op->param;
result = op->result;
+ CHECK_IMAP();
+
r = socket_connect_cmd(param->imap, param->command,
param->server, param->port);