diff options
Diffstat (limited to 'protocols/MRA/src/MraOfflineMsg.cpp')
-rw-r--r-- | protocols/MRA/src/MraOfflineMsg.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/protocols/MRA/src/MraOfflineMsg.cpp b/protocols/MRA/src/MraOfflineMsg.cpp index 1e75e886e3..a5e786a6ba 100644 --- a/protocols/MRA/src/MraOfflineMsg.cpp +++ b/protocols/MRA/src/MraOfflineMsg.cpp @@ -43,7 +43,7 @@ static DWORD MraOfflineMessageGetMIMEHeadAndBody(LPCSTR lpszMessage, size_t dwMe if (!lpszMessage || !dwMessageSize)
return ERROR_NOT_FOUND;
- // : RFC CRLFCRLF LFLF MIME ,
+ // затычка: майл не придерживается RFC и вместо CRLFCRLF ставит LFLF в MIME частях, иногда ставит
LPSTR lpszBody = (LPSTR)MemoryFind(0, lpszMessage, dwMessageSize, CRLFCRLF, (sizeof(CRLFCRLF)-1));
if (lpszBody)
lpszBody += (sizeof(CRLFCRLF)-1);
@@ -55,7 +55,7 @@ static DWORD MraOfflineMessageGetMIMEHeadAndBody(LPCSTR lpszMessage, size_t dwMe if (!lpszBody)
return ERROR_NOT_FOUND;
- //
+ // нашли начало контента миме части
size_t dwBodySize = (dwMessageSize-(lpszBody-lpszMessage));
if (plpszHeader) (*plpszHeader) = (LPSTR)lpszMessage;
if (pdwHeaderSize) (*pdwHeaderSize) = ((lpszBody-(sizeof(LFLF)-1))-lpszMessage);
@@ -96,10 +96,10 @@ static DWORD MraOfflineMessageGetNextMIMEPart(LPSTR lpszBody, size_t dwBodySize, LPSTR lpszCurMIMEPos = plpszCurMIMEPos;
LPSTR lpszMIMEPart = (LPSTR)MemoryFind((lpszCurMIMEPos-lpszBody), lpszBody, dwBodySize, lpszBoundary, dwBoundarySize);
- if (lpszMIMEPart) {//
+ if (lpszMIMEPart) {// первая миме часть
lpszMIMEPart += dwBoundarySize;
- // : RFC CRLF LF MIME ,
+ // затычка: майл не придерживается RFC и вместо CRLF ставит LF в MIME частях, иногда ставит
if ((*((WORD*)lpszMIMEPart)) == (*((WORD*)CRLF)))
lpszMIMEPart += (sizeof(CRLF)-1);
else if ((*((BYTE*)lpszMIMEPart)) == (*((BYTE*)LF)))
@@ -112,9 +112,9 @@ static DWORD MraOfflineMessageGetNextMIMEPart(LPSTR lpszBody, size_t dwBodySize, if (lpszMIMEPart == nullptr)
return ERROR_NO_MORE_ITEMS;
LPSTR lpszTemp = (LPSTR)MemoryFind((lpszMIMEPart-lpszBody), lpszBody, dwBodySize, lpszBoundary, dwBoundarySize);
- if (lpszTemp) {//
+ if (lpszTemp) {// нашли конец миме части с текстом
size_t dwMIMEPartSize = (lpszTemp-lpszMIMEPart);// 4 = CRLF"--"Boundary / 3 = LF"--"Boundary
- // : RFC CRLF LF MIME ,
+ // затычка: майл не придерживается RFC и вместо CRLF ставит LF в MIME частях, иногда ставит
if ((*((WORD*)(lpszTemp-4))) == (*((WORD*)CRLF)))
dwMIMEPartSize -= 4;
else if ((*((BYTE*)(lpszTemp-3))) == (*((BYTE*)LF)))
@@ -132,12 +132,12 @@ static DWORD MraOfflineMessageGetNextMIMEPart(LPSTR lpszBody, size_t dwBodySize, return ERROR_NOT_FOUND;
}
-//
+// Сообщение
static DWORD PlainText2message(const CMStringA &szContentType, const CMStringA &szBody, CMStringA &plpsText, DWORD *pdwFlags)
{
// Content-Type: text/plain; charset = CP-1251
if ( strstr(szContentType, "utf-16le")) {
- // charset = UTF-16LE// base64
+ // charset = UTF-16LE// предполагаем что оно в base64
unsigned dwTextSize;
ptrA lpszText((LPSTR)mir_base64_decode(szBody, &dwTextSize));
if (lpszText) {
|