browserutilities/feedsengine/FeedsServer/Server/src/FeedsServer.cpp
branchRCL_3
changeset 49 919f36ff910f
parent 48 79859ed3eea9
equal deleted inserted replaced
48:79859ed3eea9 49:919f36ff910f
    13 *
    13 *
    14 * Description:  The FeedsServer main server class.
    14 * Description:  The FeedsServer main server class.
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 
       
    19 #include "FeedsDatabase.h"
    18 #include "FeedsDatabase.h"
    20 #include "FeedHandler.h"
    19 #include "FeedHandler.h"
    21 #include "FeedsServer.h"
    20 #include "FeedsServer.h"
    22 #include "FeedsServerMsg.h"
    21 #include <feedsservermsg.h>
    23 #include "FeedsServerSession.h"
    22 #include "FeedsServerSession.h"
    24 #include "OpmlParser.h"
    23 #include "OpmlParser.h"
    25 #include "OpmlWriter.h"
    24 #include "OpmlWriter.h"
    26 #include "PackedFolder.h"
    25 #include "PackedFolder.h"
    27 #include "ServerHttpConnection.h"
    26 #include "ServerHttpConnection.h"
    28 #include "Logger.h"
    27 #include "Logger.h"
    29 #include "XMLUtils.h"
    28 #include <xmlutils.h>
    30 #include "BackRestoreHandler.h"
    29 #include "BackRestoreHandler.h"
    31 #include "UpdateManager.h" 
    30 #include "UpdateManager.h" 
    32 
    31 
    33 //  CONSTANTS
    32 //  CONSTANTS
    34 _LIT(KFeedsServerPanic, "FeedsServer");
    33 _LIT(KFeedsServerPanic, "FeedsServer");
    35 
    34 // opml files are generally smaller in size.But if a malformed opml 
       
    35 // greater than 400kB would cause the system to be irresponsive.
       
    36 // So limit the max size to 400 kB
       
    37 const TInt KMaxOPMLFileSize = 409600;
    36 //_LIT(KFileSchema, "file://c:");
    38 //_LIT(KFileSchema, "file://c:");
    37 _LIT(KDefaultFeed, "default_feeds.xml");
    39 _LIT(KDefaultFeed, "default_feeds.xml");
    38 
    40 
    39 _LIT(KDefaultOPMLFileParam, "");
    41 _LIT(KDefaultOPMLFileParam, "");
    40 
       
    41 
    42 
    42 // -----------------------------------------------------------------------------
    43 // -----------------------------------------------------------------------------
    43 // CFeedsServer::NewL
    44 // CFeedsServer::NewL
    44 //
    45 //
    45 // Two-phased constructor.
    46 // Two-phased constructor.
   385     TPtr8           bufferPtr(NULL, 0);
   386     TPtr8           bufferPtr(NULL, 0);
   386     CPackedFolder*  packedFolder = NULL;
   387     CPackedFolder*  packedFolder = NULL;
   387 
   388 
   388     // Read file
   389     // Read file
   389     User::LeaveIfError(aFile.Size(size));
   390     User::LeaveIfError(aFile.Size(size));
   390 
   391     if ( size > KMaxOPMLFileSize )
       
   392         {
       
   393         User::Leave(KErrCorrupt);	
       
   394         }
   391     buffer = HBufC8::NewLC(size);
   395     buffer = HBufC8::NewLC(size);
   392     bufferPtr.Set(buffer->Des());
   396     bufferPtr.Set(buffer->Des());
   393 
   397 
   394     User::LeaveIfError(aFile.Read(bufferPtr, size));
   398     User::LeaveIfError(aFile.Read(bufferPtr, size));
   395 
   399 
   558 // -----------------------------------------------------------------------------
   562 // -----------------------------------------------------------------------------
   559 //
   563 //
   560 void CFeedsServer::ScheduleUpdateManagerL()
   564 void CFeedsServer::ScheduleUpdateManagerL()
   561     {
   565     {
   562     RArray<TInt>     folderListIds;
   566     RArray<TInt>     folderListIds;
       
   567 	CleanupClosePushL(folderListIds);
   563     TBool    autoUpdate = EFalse;
   568     TBool    autoUpdate = EFalse;
   564     TInt     autoUpdateFreq = 0;
   569     TInt     autoUpdateFreq = 0;
   565     TUint32  autoUpdateAP = 0;
   570     TUint32  autoUpdateAP = 0;
   566 	TBool    autoUpdateWhileRoaming = EFalse;
   571 	TBool    autoUpdateWhileRoaming = EFalse;
   567     
   572     
   576                 {
   581                 {
   577                 ScheduleUpdateManagerL( folderListIds[i], autoUpdate, autoUpdateFreq, autoUpdateAP, autoUpdateWhileRoaming );
   582                 ScheduleUpdateManagerL( folderListIds[i], autoUpdate, autoUpdateFreq, autoUpdateAP, autoUpdateWhileRoaming );
   578                 }
   583                 }
   579             }
   584             }
   580         }
   585         }
       
   586     
       
   587     CleanupStack::PopAndDestroy(); //folderListIds
   581     }
   588     }
   582 
   589 
   583 // -----------------------------------------------------------------------------
   590 // -----------------------------------------------------------------------------
   584 // CFeedsServer::ScheduleUpdateManagerL
   591 // CFeedsServer::ScheduleUpdateManagerL
   585 //
   592 //