new_item = folder_item_new(loc_name, loc_path);
if (strcasestr(flags, "\\Noinferiors") != NULL)
new_item->no_sub = TRUE;
- if (strcasestr(flags, "\\Noselect") != NULL)
+ if (strcmp(buf, "INBOX") != 0 &&
+ strcasestr(flags, "\\Noselect") != NULL)
new_item->no_select = TRUE;
item_list = g_slist_append(item_list, new_item);
g_free(tmp);
break;
}
+ if (strstr(tmp, "FETCH") == NULL) {
+ g_free(tmp);
+ continue;
+ }
g_string_assign(str, tmp);
g_free(tmp);
imap_cmd_gen_send(sock, "UID FETCH %d BODY[]", uid);
- if (sock_gets(sock, buf, sizeof(buf)) < 0)
- return IMAP_ERROR;
- strretchomp(buf);
- if (buf[0] != '*' || buf[1] != ' ')
- return IMAP_ERROR;
- log_print("IMAP4< %s\n", buf);
+ while ((ok = imap_cmd_gen_recv(sock, buf, sizeof(buf)))
+ == IMAP_SUCCESS) {
+ if (buf[0] != '*' || buf[1] != ' ')
+ return IMAP_ERROR;
+ if (strstr(buf, "FETCH") != NULL)
+ break;
+ }
+ if (ok != IMAP_SUCCESS)
+ return ok;
cur_pos = strchr(buf, '{');
g_return_val_if_fail(cur_pos != NULL, IMAP_ERROR);