| 2399 | } |
| 2400 | |
| 2401 | IMAPSyncResult * IMAPSession::fetchMessages(String * folder, IMAPMessagesRequestKind requestKind, bool fetchByUID, |
| 2402 | struct mailimap_set * imapset, IndexSet * uidsFilter, IndexSet * numbersFilter, |
| 2403 | uint64_t modseq, HashMap * mapping, |
| 2404 | IMAPProgressCallback * progressCallback, Array * extraHeaders, ErrorCode * pError) |
| 2405 | { |
| 2406 | struct mailimap_fetch_type * fetch_type; |
| 2407 | clist * fetch_result; |
| 2408 | struct mailimap_qresync_vanished * vanished; |
| 2409 | struct mailimap_fetch_att * fetch_att; |
| 2410 | int r; |
| 2411 | bool needsHeader; |
| 2412 | bool needsBody; |
| 2413 | bool needsFlags; |
| 2414 | bool needsGmailLabels; |
| 2415 | bool needsGmailMessageID; |
| 2416 | bool needsGmailThreadID; |
| 2417 | Array * messages; |
| 2418 | IndexSet * vanishedMessages; |
| 2419 | |
| 2420 | selectIfNeeded(folder, pError); |
| 2421 | if (* pError != ErrorNone) |
| 2422 | return NULL; |
| 2423 | |
| 2424 | if (mNeedsMboxMailWorkaround && ((requestKind & IMAPMessagesRequestKindHeaders) != 0)) { |
| 2425 | requestKind = (IMAPMessagesRequestKind) (requestKind & ~IMAPMessagesRequestKindHeaders); |
| 2426 | requestKind = (IMAPMessagesRequestKind) (requestKind | IMAPMessagesRequestKindFullHeaders); |
| 2427 | } |
| 2428 | if (extraHeaders != NULL) { |
| 2429 | requestKind = (IMAPMessagesRequestKind) (requestKind | IMAPMessagesRequestKindExtraHeaders); |
| 2430 | } |
| 2431 | |
| 2432 | if ((requestKind & IMAPMessagesRequestKindHeaders) != 0) { |
| 2433 | mProgressItemsCount = 0; |
| 2434 | mProgressCallback = progressCallback; |
| 2435 | } |
| 2436 | |
| 2437 | messages = Array::array(); |
| 2438 | |
| 2439 | needsHeader = false; |
| 2440 | needsBody = false; |
| 2441 | needsFlags = false; |
| 2442 | needsGmailLabels = false; |
| 2443 | needsGmailMessageID = false; |
| 2444 | needsGmailThreadID = false; |
| 2445 | clist * hdrlist = clist_new(); |
| 2446 | |
| 2447 | fetch_type = mailimap_fetch_type_new_fetch_att_list_empty(); |
| 2448 | fetch_att = mailimap_fetch_att_new_uid(); |
| 2449 | mailimap_fetch_type_new_fetch_att_list_add(fetch_type, fetch_att); |
| 2450 | if ((requestKind & IMAPMessagesRequestKindFlags) != 0) { |
| 2451 | MCLog("request flags"); |
| 2452 | fetch_att = mailimap_fetch_att_new_flags(); |
| 2453 | mailimap_fetch_type_new_fetch_att_list_add(fetch_type, fetch_att); |
| 2454 | needsFlags = true; |
| 2455 | } |
| 2456 | if ((requestKind & IMAPMessagesRequestKindGmailLabels) != 0) { |
| 2457 | MCLog("request flags"); |
| 2458 | fetch_att = mailimap_fetch_att_new_xgmlabels(); |
nothing calls this directly
no test coverage detected