diff -r a648d7ca5e27 -r 9441fb8fd60d engine/src/FeedParser.cpp --- a/engine/src/FeedParser.cpp Sat Nov 13 11:53:11 2010 +0000 +++ b/engine/src/FeedParser.cpp Sat Nov 13 11:50:23 2010 +0000 @@ -55,6 +55,10 @@ iStoppedParsing = EFalse; iEncoding = ELatin1; + TEntry entry; + User::LeaveIfError(iRfs.Entry(feedFileName, entry)); + iFileSize = entry.iSize; + ParseL(*parser, iRfs, feedFileName); CleanupStack::PopAndDestroy(parser); @@ -250,18 +254,21 @@ TBuf8<128> temp; temp.Copy(iBuffer); + DP2("iFileSize=%d, iActiveFeed->FeedFileSize()=%d", iFileSize, iActiveFeed->FeedFileSize()); + TRAPD(parseError, internetDate.SetDateL(temp)); if(parseError == KErrNone) { if (TTime(internetDate.DateTime()) > iActiveFeed->BuildDate()) { DP("Successfully parsed build date"); iActiveFeed->SetBuildDate(TTime(internetDate.DateTime())); - } else { + } else if (iFileSize == iActiveFeed->FeedFileSize()){ DP("*** Nothing new, aborting parsing"); iStoppedParsing = ETrue; } } else { DP("Failed to parse last build date"); } + iActiveFeed->SetFeedFileSize(iFileSize); iFeedState = EStateChannel; } break;