MCPcopy Create free account
hub / github.com/MailCore/mailcore2 / appendMessageWithCustomFlagsAndDate

Method appendMessageWithCustomFlagsAndDate

src/core/imap/MCIMAPSession.cpp:1735–1791  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1733}
1734
1735void IMAPSession::appendMessageWithCustomFlagsAndDate(String * folder, Data * messageData, MessageFlag flags, Array * customFlags, time_t date,
1736 IMAPProgressCallback * progressCallback, uint32_t * createdUID, ErrorCode * pError)
1737{
1738 int r;
1739 struct mailimap_flag_list * flag_list;
1740 uint32_t uidvalidity;
1741 uint32_t uidresult;
1742
1743 selectIfNeeded(folder, pError);
1744 if (* pError != ErrorNone)
1745 return;
1746
1747 mProgressCallback = progressCallback;
1748 bodyProgress(0, messageData->length());
1749
1750 flag_list = flags_to_lep(flags);
1751 if (customFlags != NULL) {
1752 for (unsigned int i = 0 ; i < customFlags->count() ; i ++) {
1753 struct mailimap_flag * f;
1754 String * customFlag = (String *) customFlags->objectAtIndex(i);
1755
1756 f = mailimap_flag_new_flag_keyword(strdup(customFlag->UTF8Characters()));
1757 mailimap_flag_list_add(flag_list, f);
1758 }
1759 }
1760 struct mailimap_date_time * imap_date = NULL;
1761 if (date != (time_t) -1) {
1762 imap_date = imapDateFromTimestamp(date);
1763 }
1764 r = mailimap_uidplus_append(mImap, MCUTF8(folder), flag_list, imap_date, messageData->bytes(), messageData->length(),
1765 &uidvalidity, &uidresult);
1766 if (imap_date != NULL) {
1767 mailimap_date_time_free(imap_date);
1768 }
1769 mailimap_flag_list_free(flag_list);
1770
1771 bodyProgress(messageData->length(), messageData->length());
1772 mProgressCallback = NULL;
1773
1774 if (r == MAILIMAP_ERROR_STREAM) {
1775 mShouldDisconnect = true;
1776 * pError = ErrorConnection;
1777 return;
1778 }
1779 else if (r == MAILIMAP_ERROR_PARSE) {
1780 mShouldDisconnect = true;
1781 * pError = ErrorParse;
1782 return;
1783 }
1784 else if (hasError(r)) {
1785 * pError = ErrorAppend;
1786 return;
1787 }
1788
1789 * createdUID = uidresult;
1790 * pError = ErrorNone;
1791}
1792

Callers 2

mainMethod · 0.80

Calls 7

flags_to_lepFunction · 0.85
hasErrorFunction · 0.85
objectAtIndexMethod · 0.80
UTF8CharactersMethod · 0.80
bytesMethod · 0.80
lengthMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected