fix problems parsing certain imap headers with new hdr downloading code, r/sr=sspitzer, 19552

git-svn-id: svn://10.0.0.236/trunk@128506 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bienvenu%netscape.com
2002-08-29 23:51:43 +00:00
parent 4e4c248c84
commit 831150e8d4
2 changed files with 12 additions and 1 deletions

View File

@@ -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);

View File

@@ -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