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