mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-02 15:15:23 +00:00
fix problems parsing certain imap headers with new hdr downloading code, r/sr=sspitzer, 19552
This commit is contained in:
parent
262d589fd7
commit
1a9c161c73
@ -89,6 +89,7 @@
|
||||
#include "nsIWindowMediator.h"
|
||||
#include "nsIWindowWatcher.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsMimeTypes.h"
|
||||
PRLogModuleInfo *IMAP;
|
||||
|
||||
// netlib required files
|
||||
@ -3171,6 +3172,8 @@ void nsImapProtocol::HandleMessageDownLoadLine(const char *line, PRBool chunkEnd
|
||||
|
||||
if (GetServerStateParser().GetDownloadingHeaders())
|
||||
{
|
||||
if (!m_curHdrInfo)
|
||||
BeginMessageDownLoad(GetServerStateParser().SizeOfMostRecentMessage(), MESSAGE_RFC822);
|
||||
m_curHdrInfo->CacheLine(localMessageLine, GetServerStateParser().CurrentResponseUID());
|
||||
PR_Free( localMessageLine);
|
||||
return;
|
||||
@ -3225,6 +3228,7 @@ void nsImapProtocol::NormalMessageEndDownload()
|
||||
AdjustChunkSize();
|
||||
if (m_imapMailFolderSink && GetServerStateParser().GetDownloadingHeaders())
|
||||
{
|
||||
m_curHdrInfo->SetMsgSize(GetServerStateParser().SizeOfMostRecentMessage());
|
||||
m_hdrDownloadCache.FinishCurrentHdr();
|
||||
PRUint32 numHdrsCached;
|
||||
m_hdrDownloadCache.GetNumHeaders(&numHdrsCached);
|
||||
|
@ -1220,12 +1220,19 @@ void nsImapServerResponseParser::msg_fetch()
|
||||
envelope_data();
|
||||
}
|
||||
else if (!PL_strcasecmp(fNextToken, "INTERNALDATE"))
|
||||
{
|
||||
fDownloadingHeaders = PR_TRUE; // we only request internal date while downloading headers
|
||||
if (!bNeedEndMessageDownload)
|
||||
BeginMessageDownload(MESSAGE_RFC822);
|
||||
bNeedEndMessageDownload = PR_TRUE;
|
||||
internal_date();
|
||||
}
|
||||
else if (!PL_strcasecmp(fNextToken, "XAOL-ENVELOPE"))
|
||||
{
|
||||
fDownloadingHeaders = PR_TRUE;
|
||||
bNeedEndMessageDownload = PR_TRUE;
|
||||
if (!bNeedEndMessageDownload)
|
||||
BeginMessageDownload(MESSAGE_RFC822);
|
||||
bNeedEndMessageDownload = PR_TRUE;
|
||||
xaolenvelope_data();
|
||||
}
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user