201037
authorhgs
Fri, 17 Sep 2010 19:59:15 +0530
changeset 66 08c8318ec9cb
parent 64 910464db1b65
child 70 5237465237e3
201037
fotaapplication/fotaserver/fotaserver.pro
fotaapplication/fotaserver/inc/fsview.h
fotaapplication/fotaserver/src/fsview.cpp
omaprovisioning/pnputil/src/PnpProvUtil.cpp
omaprovisioning/provisioning/Group/bld.inf
omaprovisioning/provisioning/Rom/Provisioning.iby
omaprovisioning/provisioning/loc/prov.rsc
policymanagement/conf/policy_management.confml
policymanagement/conf/policy_management_10207843.crml
policymanagement/dmutilserver/inc/PMUtilInternalCRKeys.h
policymanagement/dmutilserver/src/DMUtilObserver.cpp
policymanagement/policyengine/bwins/PolicyEngineu.def
policymanagement/policyengine/centreptoolserver/src/RepositorySession.cpp
policymanagement/policyengine/eabi/PolicyEngineu.def
policymanagement/policyengine/group/PolicyEngineClient.mmp
policymanagement/policyengine/group/PolicyEngineServer.mmp
policymanagement/policyengine/policyengineclient/inc/PolicyEngineClientServerDefs.h
policymanagement/policyengine/policyengineclient/src/PolicyEngineClient.cpp
policymanagement/policyengine/policyengineserver/inc/PlatformSecurityPolicies.h
policymanagement/policyengine/policyengineserver/inc/PolicyProcessor.h
policymanagement/policyengine/policyengineserver/src/PolicyEngineServer.cpp
policymanagement/policyengine/policyengineserver/src/PolicyProcessor.cpp
policymanagement/policyengine/policyengineui/PolicyEngineUI.pro
policymanagement/policyengine/policyengineui/inc/PolicyEngineUI.h
policymanagement/policyengine/policyengineui/src/PolicyEngineUI.cpp
remotemgmt_plat/adaptive_history_list_api/adaptive_history_list_api.metaxml
remotemgmt_plat/adaptive_history_list_api/group/bld.inf
remotemgmt_plat/adaptive_history_list_api/inc/ahlededicatedapi.h
remotemgmt_plat/adaptive_history_list_api/inc/ahlededicatedapi.inl
remotemgmt_plat/adaptive_history_list_api/inc/ahlegenericapi.h
remotemgmt_plat/adaptive_history_list_api/inc/ahlegenericapi.inl
remotemgmt_plat/adaptive_history_list_api/inc/ahleobserver.h
remotemgmt_plat/adaptive_history_list_session_api/adaptive_history_list_session_api.metaxml
remotemgmt_plat/adaptive_history_list_session_api/group/bld.inf
remotemgmt_plat/adaptive_history_list_session_api/inc/ahlededicated.h
remotemgmt_plat/adaptive_history_list_session_api/inc/ahlegeneric.h
remotemgmt_plat/data_synchronization_plugin_api/group/bld.inf
remotemgmt_plat/data_synchronization_plugin_api/inc/SmlDataProvider.h
remotemgmt_plat/device_management_plugin_api/group/bld.inf
remotemgmt_plat/group/bld.inf
remotemgmt_plat/oma_ds_extensions_api/inc/nsmlsnapshotitem.h
remotemgmt_plat/policy_management_request_api/inc/PolicyEngineClient.h
remotemgmt_plat/policy_management_request_api/tsrc/conf/PolicyEngineClient.cfg
remotemgmt_plat/policy_management_request_api/tsrc/group/policy_management_request_api.mmp
remotemgmt_plat/policy_management_request_api/tsrc/inc/policy_management_request_api.h
remotemgmt_plat/policy_management_request_api/tsrc/src/policy_management_request_apiBlocks.cpp
remotemgmt_plat/syncml_client_api/group/bld.inf
remotemgmt_plat/update_package_storage_plugin_api/group/bld.inf
remotemgmt_plat/update_package_storage_plugin_api/inc/fotastorage.h
remotemgmt_plat/update_package_storage_plugin_api/update_package_storage_plugin_api.metaxml
syncmlfw/common/http/bld/nsmlhttp.mmp
syncmlfw/common/obex/obexdmplugin/bld/nsmlobexdmplugin.mmp
syncmlfw/common/sosserver_clientapi/src/NSmlClientAPIUtils.cpp
syncmlfw/dm/callbackServer/src/nsmldmcallbacksession.cpp
syncmlfw/dm/hostserver/dmhostserverbase/src/nsmldmhostsession.cpp
syncmlfw/dm/treedbhandler/src/nsmldmdbhandler.cpp
syncmlfw/ds/agentlog/src/nsmlagentlog.cpp
syncmlfw/ds/dsutils/ProfileUtil/src/NsmlProfileUtil.cpp
syncmlfw/ds/syncagent/bld/nsmldsagent.mmp
syncmlfw/group/syncmlfw_stub.pkg
syncmlfw/group/syncmlfw_stub.sis
syncmlfw/rom/NSmlDSSync.iby
terminalsecurity/SCP/SCPClient/src/SCPParamObject.cpp
terminalsecurity/SCP/SCPServer/group/SCPServer.mmp
terminalsecurity/SCP/SCPServer/inc/SCPServer.h
terminalsecurity/SCP/SCPServer/src/SCPPluginManager.cpp
terminalsecurity/SCP/SCPServer/src/SCPServer.cpp
--- a/fotaapplication/fotaserver/fotaserver.pro	Fri Sep 03 22:35:56 2010 +0530
+++ b/fotaapplication/fotaserver/fotaserver.pro	Fri Sep 17 19:59:15 2010 +0530
@@ -12,8 +12,6 @@
 TEMPLATE = app
 TARGET = fotaserver
 
-RSS_RULES += "hidden = KAppIsHidden;"
-
 DEPENDPATH += . \
     ./inc \
     ./src \
@@ -107,11 +105,12 @@
 		/epoc32/include/mw/hb/hbwidgets	\
 		/epoc32/include/mw/hb/hbutils \
 		tmp
+
+RSS_RULES += "hidden = KAppIsHidden;"
 	
     LIBS += -laknskins \
         -lapgrfx \
         -lapparc \
-        -lapsettingshandlerui \
         -lavkon \
         -lbafl \
         -lcone \
--- a/fotaapplication/fotaserver/inc/fsview.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/fotaapplication/fotaserver/inc/fsview.h	Fri Sep 17 19:59:15 2010 +0530
@@ -30,7 +30,12 @@
 public:
     FSView();
     ~FSView();
-
+signals :
+	/**
+	 * applicationReady() - To emit the application ready signal for matti tool.
+   */
+   void applicationReady();
+public:   
     void SetServer(CFotaServer * aServer);
     
     //Handles the incoming events
@@ -38,5 +43,6 @@
 
 private:
     CFotaServer *iServer;
+    TBool Initilized;
     };
 #endif /* FSVIEW_H_ */
--- a/fotaapplication/fotaserver/src/fsview.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/fotaapplication/fotaserver/src/fsview.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -23,7 +23,7 @@
 // ------------------------------------------------------------------------------------------------
 FSView::FSView()
     {
-    
+    	Initilized = EFalse;
     }
 // ------------------------------------------------------------------------------------------------
 // FSView::~FSView()
@@ -37,6 +37,11 @@
 // ------------------------------------------------------------------------------------------------
 bool FSView::eventFilter(QObject *object, QEvent *event)
 {   
+    if( Initilized == EFalse )
+    {
+    		emit applicationReady();
+    		Initilized = ETrue;
+    }
     switch (event->type())
         {
         case QEvent::ApplicationActivate:
--- a/omaprovisioning/pnputil/src/PnpProvUtil.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/omaprovisioning/pnputil/src/PnpProvUtil.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -350,7 +350,7 @@
 
 
         HBufC *buf18 = aPtr.AllocL();
-        array.Append(buf18); 
+        array.AppendL(buf18); 
 
         if(aLex.Peek()=='\x00') // end of string
             break; 
--- a/omaprovisioning/provisioning/Group/bld.inf	Fri Sep 03 22:35:56 2010 +0530
+++ b/omaprovisioning/provisioning/Group/bld.inf	Fri Sep 17 19:59:15 2010 +0530
@@ -44,7 +44,7 @@
 ../Rom/Provisioning.iby										CORE_MW_LAYER_IBY_EXPORT_PATH(provisioning.iby)
 ../Rom/ProvisioningResources.iby					LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(provisioningresources.iby)
 ../loc/Provisioning.loc									MW_LAYER_LOC_EXPORT_PATH(provisioning.loc)
-
+../loc/prov.rsc /epoc32/data/z/resource/messaging/bif/prov.rsc
 PRJ_EXTENSIONS
 
 PRJ_MMPFILES
--- a/omaprovisioning/provisioning/Rom/Provisioning.iby	Fri Sep 03 22:35:56 2010 +0530
+++ b/omaprovisioning/provisioning/Rom/Provisioning.iby	Fri Sep 17 19:59:15 2010 +0530
@@ -19,7 +19,7 @@
 #ifndef __PROVISIONING_IBY__
 #define __PROVISIONING_IBY__
 
-
+data=DATAZ_\BIOFILE_DIR\prov.rsc                                  BIOFILE_DIR\prov.rsc
 // Engine
 file=ABI_DIR\BUILD_DIR\ProvisioningEngine.dll   SHARED_LIB_DIR\ProvisioningEngine.dll
 // Parser
Binary file omaprovisioning/provisioning/loc/prov.rsc has changed
Binary file policymanagement/conf/policy_management.confml has changed
Binary file policymanagement/conf/policy_management_10207843.crml has changed
--- a/policymanagement/dmutilserver/inc/PMUtilInternalCRKeys.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/dmutilserver/inc/PMUtilInternalCRKeys.h	Fri Sep 17 19:59:15 2010 +0530
@@ -118,5 +118,32 @@
 */
 const TUint32 KSyncMLForcedCertificateCheckKey = 0x00000006;
 
+/**
+* CenRep key for certificate label counter:
+* Indicates current label value of certificate.
+*
+* Possible integer values:
+* Positive numbers
+*
+* Default value: 0 (not defined)
+*
+*
+*/
+const TUint32 KCertificateCounter = 0x00000007;
+
+/**
+* CenRep key for server id:
+* Indicates current trusted server id.
+*
+* Possible string values:
+* some string names
+*
+* Default value: NULL(not defined)
+*
+*
+*/
+const TUint32 KTrustedServerId = 0x00000008;
+
+
 #endif // PM_UTIL_PRIVATE_CR_KEYS_H
 
--- a/policymanagement/dmutilserver/src/DMUtilObserver.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/dmutilserver/src/DMUtilObserver.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -224,7 +224,7 @@
 void CActiveObserver::SubscribeEventL( MActiveCallBackObserver* aDynamicCallBackObserver)
 {
 	//add subsribers info to list
-	iSubcribers.Append( aDynamicCallBackObserver);
+	iSubcribers.AppendL( aDynamicCallBackObserver);
 	
 	if ( !iSubscribed)
 	{
--- a/policymanagement/policyengine/bwins/PolicyEngineu.def	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/bwins/PolicyEngineu.def	Fri Sep 17 19:59:15 2010 +0530
@@ -40,4 +40,6 @@
 	?SetResponseValue@TResponse@@QAEXW4TResponseValue@@@Z @ 39 NONAME ; void TResponse::SetResponseValue(enum TResponseValue)
 	?Zero@TParserResponse@@QAEXXZ @ 40 NONAME ; void TParserResponse::Zero(void)
 	?EnforcementActiveL@CSettingEnforcementInfo@@QAEXABVTDesC8@@AAH@Z @ 41 NONAME ; void CSettingEnforcementInfo::EnforcementActiveL(class TDesC8 const &, int &)
+	?RemoveServerCert@RPolicyManagement@@QAEHABVTDesC16@@@Z @ 42 NONAME ; int RPolicyManagement::RemoveServerCert(class TDesC16 const &)
+	?AddServerCert@RPolicyManagement@@QAEHABVCX509Certificate@@AAVTDes16@@@Z @ 43 NONAME ; int RPolicyManagement::AddServerCert(class CX509Certificate const &, class TDes16 &)
 
--- a/policymanagement/policyengine/centreptoolserver/src/RepositorySession.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/centreptoolserver/src/RepositorySession.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -423,8 +423,27 @@
 	if ( !aSettings.Count() )
 	{	
 		CRangeMeta * setting = CRangeMeta::NewL( aCompareValue, 0, aMask, KBackupBitMask);
-		aSettings.AppendL( setting );
-		iRangeMetas.AppendL( setting);
+		TInt err = KErrNone;
+		TRAP(err, aSettings.AppendL( setting ));
+		if(err != KErrNone)
+		    {
+		    delete setting;
+			User::Leave( err );
+		    }
+		else
+		    {
+		    TRAP(err, iRangeMetas.AppendL( setting));
+		    if(err != KErrNone)
+		        {
+		        TInt indx = aSettings.Find( setting );
+		        if(indx != KErrNotFound)
+		            {
+		            aSettings.Remove(indx);
+					User::Leave( err );
+		            }
+		        
+		        }
+		    }
 	}
 }
 
@@ -533,8 +552,27 @@
 	if ( !aSettings.Count() )
 	{	
 		CRangeSetting * setting = CRangeSetting::NewL( aRangeStart, aRangeEnd, 0);
-		aSettings.Append( setting );
-		iRangeSettings.Append( setting);
+		TInt err = KErrNone;
+		TRAP(err, aSettings.AppendL( setting ));
+		if(err != KErrNone)
+		    {
+		    delete setting;
+			User::Leave( err );
+		    }
+		else
+		    {
+		    TRAP(err, iRangeSettings.AppendL( setting));
+		    if(err != KErrNone)
+		        {
+		        TInt indx = aSettings.Find( setting );
+		        if(indx != KErrNotFound)
+		            {
+		            aSettings.Remove(indx);
+					User::Leave( err );
+		            }
+
+		        }
+		    }
 	}	
 	
 	iRangeSettings.Sort( linearOrder);
@@ -572,8 +610,27 @@
 	if ( !aSettings.Count() )
 	{	
 		CRangeSetting * setting = CRangeSetting::NewL( aCompareValue, 0, aMask);
-		aSettings.Append( setting );
-		iRangeSettings.Append( setting);
+		TInt err = KErrNone;
+		TRAP(err, aSettings.AppendL( setting ));
+		if(err != KErrNone)
+		    {
+		    delete setting;
+			User::Leave( err );
+		    }
+		else
+		    {
+		    TRAP(err, iRangeSettings.AppendL( setting));
+		    if(err != KErrNone)
+		        {
+		        TInt indx = aSettings.Find( setting );
+		        if(indx != KErrNotFound)
+		            {
+		            aSettings.Remove(indx);
+					User::Leave( err );
+		            }
+
+		        }
+		    }
 	}
 	
 	
--- a/policymanagement/policyengine/eabi/PolicyEngineu.def	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/eabi/PolicyEngineu.def	Fri Sep 17 19:59:15 2010 +0530
@@ -50,4 +50,6 @@
 	_ZTI23CSettingEnforcementInfo @ 49 NONAME ; #<TI>#
 	_ZTV23CSettingEnforcementInfo @ 50 NONAME ; #<VT>#
 	_ZN23CSettingEnforcementInfo18EnforcementActiveLERK6TDesC8Ri @ 51 NONAME
+	_ZN17RPolicyManagement13AddServerCertERK16CX509CertificateR6TDes16 @ 52 NONAME
+	_ZN17RPolicyManagement16RemoveServerCertERK7TDesC16 @ 53 NONAME
 
--- a/policymanagement/policyengine/group/PolicyEngineClient.mmp	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/group/PolicyEngineClient.mmp	Fri Sep 17 19:59:15 2010 +0530
@@ -45,7 +45,7 @@
 LIBRARY 	  		centralrepository.lib	
 LIBRARY 	  		featmgr.lib	
 library 		inetprotutil.lib
-LIBRARY         dmutil.lib
+LIBRARY         dmutil.lib x509.lib ctframework.lib crypto.lib efsrv.lib 
 
 
 SMPSAFE
--- a/policymanagement/policyengine/group/PolicyEngineServer.mmp	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/group/PolicyEngineServer.mmp	Fri Sep 17 19:59:15 2010 +0530
@@ -80,6 +80,7 @@
 LIBRARY		  flogger.lib
 LIBRARY 	  featmgr.lib
 LIBRARY       HbWidgets.lib HbCore.lib
+LIBRARY       certstore.lib ctframework.lib
 LIBRARY 	  inetprotutil.lib
 
 SMPSAFE
--- a/policymanagement/policyengine/policyengineclient/inc/PolicyEngineClientServerDefs.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/policyengineclient/inc/PolicyEngineClientServerDefs.h	Fri Sep 17 19:59:15 2010 +0530
@@ -49,7 +49,11 @@
 	//Policy request operations	
 	EPolicyRequest,
 	ECreateRequestSubSession,
-	ECloseRequestSubSessio
+	ECloseRequestSubSessio,
+	
+
+	EServerCertAddRequest,
+	EServerCertRemoveRequest
 	};
 	
 
--- a/policymanagement/policyengine/policyengineclient/src/PolicyEngineClient.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/policyengineclient/src/PolicyEngineClient.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -29,7 +29,10 @@
 #include "ErrorCodes.h"
 #include "debug.h"
 
+#include <f32file.h>
+#include <s32file.h>
 
+const TInt KMaxLabelIdLength = 25; //take 25 from cert store or some header file
 
 
 // Standard server startup code
@@ -268,6 +271,41 @@
 	return SendReceive( EAddSessionTrust, TIpcArgs( &certInfoPck));	
 }
 
+EXPORT_C TInt RPolicyManagement::AddServerCert(const CX509Certificate& aCert, TDes& aLabel)
+{
+    RDEBUG("RPolicyManagement::AddServerCert()" );
+    
+    TPtrC8 ptr(aCert.Encoding());   
+    TInt size =ptr.Length();
+          
+    TBuf<1024> certData;
+    certData.Copy(ptr);
+    //label buffer to be written by server
+    TBuf<KMaxLabelIdLength> cLabel;
+    
+    TIpcArgs args(&certData,size,&cLabel);       
+    
+    TInt err = SendReceive(EServerCertAddRequest, args); 
+    // copy returned label 
+    aLabel.Append(cLabel);    
+    
+    return err; 
+ 
+}
+
+
+EXPORT_C TInt RPolicyManagement:: RemoveServerCert(const TDesC& aLabel)
+{  
+    RDEBUG("RPolicyManagement:: RemoveServerCert");
+
+    TBuf<KMaxLabelIdLength> labelData;
+    labelData.Copy(aLabel);    
+    
+    TInt err = SendReceive(EServerCertRemoveRequest, TIpcArgs(&labelData));    
+    return err;    
+}
+
+
 EXPORT_C TInt RPolicyManagement::IsAllowedServerId( const TDesC& aServerID)
 {
 	RDEBUG_2("RPolicyManagement::IsAllowedServerId( %S )", &aServerID );
--- a/policymanagement/policyengine/policyengineserver/inc/PlatformSecurityPolicies.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/policyengineserver/inc/PlatformSecurityPolicies.h	Fri Sep 17 19:59:15 2010 +0530
@@ -27,7 +27,7 @@
 #include "PolicyEngineClientServerDefs.h"
 // CONSTANTS
 
-const TUint KPolicyEngineRangeCount = 6;
+const TUint KPolicyEngineRangeCount = 7;
 
 const TInt KPolicyEngineRanges[KPolicyEngineRangeCount] = 
         {
@@ -62,8 +62,12 @@
 //		EPolicyRequest
 //		ECreateRequestSubSession
 //		ECloseRequestSubSessio
-      
-        ECloseRequestSubSessio + 1				
+	
+		EServerCertAddRequest,
+//      6th range function ids
+//      EServerCertRemoveRequest,
+		
+		EServerCertRemoveRequest+1
         //ENotSupported
         }; 
         
@@ -76,6 +80,7 @@
         1,									//applies to 3rd range
         2,									//applies to 4rd range
         3,									//applies to 5rd range
+        4,                                  //applies to 6rd range
         CPolicyServer::ENotSupported  
         };
 
@@ -85,7 +90,8 @@
         {_INIT_SECURITY_POLICY_S2( 0x101f9a02, ECapabilityWriteDeviceData, ECapabilityReadDeviceData),  CPolicyServer::EPanicClient}, 	 
         {_INIT_SECURITY_POLICY_S0( 0x102073EA /*RFS SID*/),  CPolicyServer::EPanicClient}, 	 
         {_INIT_SECURITY_POLICY_C2(ECapabilityReadDeviceData, ECapabilityWriteDeviceData),  CPolicyServer::EPanicClient}, 	 
-        {_INIT_SECURITY_POLICY_C2(ECapabilityReadDeviceData, ECapabilityWriteDeviceData),  CPolicyServer::EPanicClient} 	 
+        {_INIT_SECURITY_POLICY_C2(ECapabilityReadDeviceData, ECapabilityWriteDeviceData),  CPolicyServer::EPanicClient} ,
+        {_INIT_SECURITY_POLICY_C1( ECapability_None ), CPolicyServer::EFailClient}
         };
 
 //Package all the above together into a policy
--- a/policymanagement/policyengine/policyengineserver/inc/PolicyProcessor.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/policyengineserver/inc/PolicyProcessor.h	Fri Sep 17 19:59:15 2010 +0530
@@ -31,12 +31,17 @@
 #include <msvapi.h>
 #include <hbsymbianvariant.h>
 #include <hbdevicedialogsymbian.h>
-
+#include <x509cert.h>
+#include <unifiedcertstore.h> 
+#include <mctwritablecertstore.h> 
+#include <ccertattributefilter.h>
 // CONSTANTS
 // MACROS
 // DATA TYPES
 // FUNCTION PROTOTYPES
 // FORWARD DECLARATIONS
+class CCertStore;
+class CRepository;
 
 class CDataType;
 class CAttribute;
@@ -107,6 +112,15 @@
 		//For management functions
 		void SetTargetElement( CElementBase * aElement);
 		void SetSessionTrust( CTrustedSession * aTrustedSession);	
+     
+		//certificate store functions
+        TInt AddCertificateToStoreL(const RMessage2& aMessage);
+        //Read that counter value from central repository
+        TInt GetCertCounterValue();
+        TInt RemoveCertificateFromStoreL(const RMessage2& aMessage);
+        void UpdateSilentTrustServerId();
+        TInt CheckCurrentServerIdFromCR();
+        
 	protected:
 		//From CActive
 		void RunL();
@@ -143,7 +157,75 @@
 		const RMessage2 * iMessage;
 		HBufC8 * iRequestBuffer;		
 		TInt iProcessorState;
-};	
+		
+		//cert store pointer
+		 CCertStore* iStore; 
+		 HBufC8 *iCertBuffer;    	
+		
+	};	
+
+
+class CCertStore:public CActive
+    {
+    enum TCertState
+            {
+             EReady,             
+             EInitializeStore,           
+             EGetFPrint,            
+             EAddCert, 
+             ERemoveCert,
+             EExistsInStore            
+            }  iCertState; 
+    public:
+    
+        static CCertStore* NewL();
+       
+       ~CCertStore();
+    
+       
+        void InitializeCertStore();
+        TInt AddCert(HBufC8 *aCertBuffer);
+        void GetWritableCertStoreIndex();
+        TInt GenerateNewCertLabel();
+        void UpdateLabelCounterInCR();
+        HBufC* GetCurrentCertLabel();      
+        TInt RemoveCert(const TDesC& aCertLabel);       
+        const TDesC8&  RetrieveCertFPrint(const TDesC& aCertLabel);
+        TBool CheckCertInStore( const TDesC& aLabel ); 
+        void WaitUntilOperationDone();        
+                
+    protected:         
+        virtual void RunL();      
+        virtual void DoCancel();
+
+    private:        
+        CCertStore();
+        void ConstructL();          
+   
+    private:
+     // Data
+        CUnifiedCertStore* iCertStore;        
+        TInt iStoreIndex;        
+        RMPointerArray< CCTCertInfo > iCertInfoArray;
+        CCTCertInfo* iCertInfoRetrieved;       
+        HBufC8* iCertData; 
+        
+        // to track the counter of cert labels
+        TInt iLabelCounter;
+        
+        //cert data from SCCM cerver
+        HBufC8 *iCertBuffer;
+        
+        //cert Label to be used for storage and removal
+        HBufC  *iCertLabel;
+        
+        //Waits for the operation to complete. Owned.
+        CActiveSchedulerWait* iWait;        
+        TBuf8<40> iFingerPrint; 
+
+    };
+
+
 
 
 //Class to launch PolicyEngine Dialog
--- a/policymanagement/policyengine/policyengineserver/src/PolicyEngineServer.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/policyengineserver/src/PolicyEngineServer.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -583,6 +583,18 @@
 			subSession->iPolicyManager->IsServerIdValidL( aMessage);	
 			return;
 		}
+		
+        case EServerCertAddRequest:
+                {
+                subSession->iPolicyProcessor->AddCertificateToStoreL(aMessage);
+                return;
+                }
+        case EServerCertRemoveRequest:
+                {
+                subSession->iPolicyProcessor->RemoveCertificateFromStoreL(aMessage);
+                return;
+                }
+            
 		case ECertificateRole :
 		{
 			subSession->iPolicyManager->GetCertificateRoleL( aMessage);	
--- a/policymanagement/policyengine/policyengineserver/src/PolicyProcessor.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/policyengineserver/src/PolicyProcessor.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -33,11 +33,27 @@
 #include <hbdevicedialogsymbian.h>
 #include <hbdevicenotificationdialogsymbian.h>
 #include <hbtextresolversymbian.h>
+
+#include "DMUtilClient.h"
+#include "PMUtilInternalCRKeys.h"
+
+#include <eikenv.h>
+#include <centralrepository.h>
+
+#include <s32mem.h>
 // CONSTANTS
 const TUid KUidPolicyEngineUi = { 0x10207817 };
 const TUint KDelimeterChar = '|';
 _LIT8( KUserAcceptMark, "A");
 
+const TInt KMaxServerIdLength = 250;
+const TInt KMaxLabelIdLength = 25;
+const TInt KMaxCertSize = 1024;
+        
+_LIT(KSymbianCertificateStoreLabel, "Software certificate store");
+_LIT(KDMTrustedCertLabel,"DMTrustedServer_");
+_LIT8(KNoKeyFound,"");
+
 enum TUserResponse
     {
     EUserAccept,
@@ -121,8 +137,12 @@
 //
 
 CPolicyProcessor::~CPolicyProcessor()
-{
-	ResetRequestContext();
+{  
+    delete iCertBuffer;
+    iCertBuffer=NULL;
+    delete iStore;
+    ////
+    ResetRequestContext();
 	delete iRequestBuffer;
 
 	CPolicyEngineServer::RemoveActiveObject( this);
@@ -139,6 +159,123 @@
 }
 
 // -----------------------------------------------------------------------------
+// CPolicyProcessor::AddCertificateToStoreL()
+// -----------------------------------------------------------------------------
+//
+
+TInt CPolicyProcessor::AddCertificateToStoreL(const RMessage2& aMessage)
+    {
+    RDEBUG("CPolicyProcessor::AddCertificateToStore" );
+    TInt size = aMessage.Int1();
+    TBuf<KMaxCertSize> certData;    
+    
+    aMessage.ReadL(0, certData, 0);     
+    iCertBuffer = HBufC8::NewL(size);     
+    iCertBuffer->Des().Copy(certData);
+    
+    //check if the trust already exists with same server
+    TInt result = CheckCurrentServerIdFromCR();     
+    if(result == KErrInUse)
+        {       
+        return KErrInUse;    
+        }
+    
+    iStore = CCertStore::NewL();
+    iStore->InitializeCertStore();
+    TInt res = iStore->AddCert(iCertBuffer);
+    if(res == KErrNone)
+        {        
+        //update the new counter value in CR
+        iStore->UpdateLabelCounterInCR();  
+        // return the newly generated label
+        aMessage.WriteL( 2, iStore->GetCurrentCertLabel()->Des() );     
+        }
+    
+    return res; 
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPolicyProcessor::RemoveCertificateFromStoreL()
+// -----------------------------------------------------------------------------
+//
+TInt CPolicyProcessor::RemoveCertificateFromStoreL(const RMessage2& aMessage)
+    {
+    RDEBUG("CPolicyProcessor::RemoveCertificateFromStoreL" );
+    TBuf<128> certLabel;
+    aMessage.ReadL(0, certLabel, 0);   
+       
+    HBufC *label = HBufC::NewL(aMessage.GetDesLength(0));
+    label->Des().Copy(certLabel);  
+    TInt result = CheckCurrentServerIdFromCR();
+    
+    //check if the trust already exists with same server
+    if(result == KErrInUse)
+        {
+        RDEBUG("CPolicyProcessor::RemoveCertificateFromStore -14" );
+        return KErrInUse;    
+        }
+  
+    if ( iStore != NULL )
+       {
+       delete iStore;
+       iStore = NULL;
+       }
+    iStore = CCertStore::NewL();
+    iStore->InitializeCertStore();    
+    
+    TInt res;
+    if(label->Des() == KNullDesC)
+        {
+        // If NULL is passed for removing label then remove the current label
+        HBufC* rLabel = iStore->GetCurrentCertLabel()->AllocL();
+        res = iStore->RemoveCert(*rLabel);
+        delete rLabel;
+        }
+    else
+        {
+        res = iStore->RemoveCert(*label); 
+        }
+ 
+    delete label;
+    label = NULL;
+    return res;
+    }
+
+// -----------------------------------------------------------------------------
+// CPolicyProcessor::CheckCurrentServerIdFromCR()
+// -----------------------------------------------------------------------------
+//
+TInt CPolicyProcessor::CheckCurrentServerIdFromCR()
+    {
+    RDEBUG("CPolicyProcessor::CheckCurrentServerIdFromCR" );
+    TBuf8<KMaxServerIdLength>  serverIdCR;         
+    TRAPD( err, 
+           {
+           CRepository* rep = CRepository::NewL( KCRUidPolicyManagementUtilInternalKeys );
+           CleanupStack::PushL( rep );
+           rep->Get( KTrustedServerId, serverIdCR );
+           CleanupStack::PopAndDestroy( rep );
+           } );
+  
+    if(err!=KErrNone)
+        {
+        return err;
+        }    
+    TBool result = CPolicyStorage::PolicyStorage()->IsServerIdValid(serverIdCR);    
+    if(result)
+        {
+        return KErrInUse;
+        }
+    else
+        {
+        return KErrNone;
+        }
+        
+    }
+
+// -----------------------------------------------------------------------------
 // CPolicyProcessor::HandleErrorL()
 // -----------------------------------------------------------------------------
 //
@@ -733,6 +870,57 @@
 
 
 // -----------------------------------------------------------------------------
+// CPolicyProcessor::GetCertCounterValue()
+// -----------------------------------------------------------------------------
+//
+TInt CPolicyProcessor::GetCertCounterValue()
+    {
+    RDEBUG("CPolicyProcessor::GetCertCounterValue" );
+
+    TInt counter = -1;
+    
+    TRAPD( err, 
+       {
+       CRepository* rep = CRepository::NewL( KCRUidPolicyManagementUtilInternalKeys );
+       CleanupStack::PushL( rep );
+       rep->Get( KCertificateCounter, counter );
+       CleanupStack::PopAndDestroy( rep );
+       } );
+   
+    return counter;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPolicyProcessor::UpdateSilentTrustServerId()
+// -----------------------------------------------------------------------------
+//
+void CPolicyProcessor::UpdateSilentTrustServerId()
+    { 
+    RDEBUG("CPolicyProcessor::UpdateSilentTrustServerId" );
+    //get server id and store in cenrep
+    //connect to DM util client...
+    RDMUtil dmutil;
+    dmutil.Connect();
+    CleanupClosePushL( dmutil);
+    
+    //..and get server id
+    TBuf8<KMaxServerIdLength> serverid;
+    dmutil.GetDMSessionServerId( serverid);
+    CleanupStack::PopAndDestroy( &dmutil); 
+    
+    TInt ret;
+    TRAPD( err, 
+      {
+        CRepository* rep = CRepository::NewL( KCRUidPolicyManagementUtilInternalKeys );
+        CleanupStack::PushL( rep );
+        ret = rep->Set( KTrustedServerId, serverid );
+        CleanupStack::PopAndDestroy( rep );
+      } );
+
+    }
+
+// -----------------------------------------------------------------------------
 // CPolicyProcessor::CorporateUserAcceptFunctionL()
 // -----------------------------------------------------------------------------
 //
@@ -762,14 +950,56 @@
 	RDEBUG8_2("CPolicyProcessor::fingerPrint: %S", &ptr);
 	    
 	TUserResponse response = EUserDeny;
+	
+    TBool showUserScreen = ETrue;
+      
+    if(GetCertCounterValue() > 0)
+        {   
+        if ( iStore != NULL )
+                {
+                delete iStore;
+                iStore = NULL;
+                }
+        iStore = CCertStore::NewL();
+        iStore->InitializeCertStore();
+        HBufC* certLabel = iStore->GetCurrentCertLabel();       
+        const TDesC8& fingerPrintSilent = iStore->RetrieveCertFPrint(*certLabel);      
+        
+        // Compare the fingerprints of cert stored with received from server  
+        TInt result = fingerPrintSilent.Compare(fingerPrint); 
+        RDEBUG_2("CorporateUserAcceptFunction FP Match ( %d )", result ); 
+        
+        if(result==KErrNone)
+            {
+            UpdateSilentTrustServerId();
+            response = EUserAccept;
+            showUserScreen = EFalse;
+            
+            // call device dialog to show notification                
+            _LIT(KDialogText, "Silent Trust Done!");
+            _LIT(KDialogTitle, "TRUST");
+            _LIT(KDialogIcon, "qtg_large_info");                
+            CHbDeviceNotificationDialogSymbian* dialog = CHbDeviceNotificationDialogSymbian::NewL();
+            CleanupStack::PushL(dialog);
+            dialog->SetTextL(KDialogText);
+            dialog->SetTitleL(KDialogTitle);
+            dialog->SetIconNameL(KDialogIcon);
+            dialog->ShowL();
+            CleanupStack::PopAndDestroy(dialog);            
+            }
+               
+        }
 
-    CProcessorClient *client = new CProcessorClient();
-    TInt res = client->LaunchDialog(ptr, name);
-    
-    if(res == 0)
-        response = EUserAccept;
-    else
-        response = EUserDeny;  
+    if(showUserScreen)
+        {       
+        CProcessorClient *client = new CProcessorClient();
+        TInt res = client->LaunchDialog(ptr, name);
+        
+        if(res == 0)
+            response = EUserAccept;
+        else
+            response = EUserDeny; 
+        }
 
 
 	MakeBooleanResponseL( response == EUserAccept, aResponseElement);
@@ -1384,4 +1614,349 @@
 	
 	return response;
 }
-	
+
+
+void CCertStore::ConstructL()
+    {
+    RDEBUG("CCertStore::ConstructL" );
+
+    }
+
+CCertStore::CCertStore():CActive(EPriorityStandard)
+    {
+    RDEBUG("CCertStore::CCertStore" );
+    iCertState = EReady;
+    iCertStore = NULL;
+   
+    CActiveScheduler::Add(this);
+    iWait = new CActiveSchedulerWait();
+    }
+
+CCertStore::~CCertStore()
+    {
+    RDEBUG("CCertStore::~CCertStore" );
+
+    delete iWait;     
+    delete iCertLabel;
+    iCertLabel = NULL;    
+    delete iCertBuffer;
+    iCertBuffer = NULL;    
+    delete iCertStore;
+    iCertStore = NULL;
+  
+    }
+
+CCertStore* CCertStore::NewL()
+    { 
+    RDEBUG("CCertStore::NewL" );
+
+    CCertStore* self = new(ELeave) CCertStore();   
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;    
+    }
+
+
+void CCertStore::InitializeCertStore()
+    {
+    RDEBUG("CCertStore::InitializeCertStore");
+    if(iCertStore == NULL)
+        {
+        RFs* fs = new RFs();
+        fs->Connect();
+        iCertStore = CUnifiedCertStore::NewL(*fs, ETrue);         
+         
+        iCertStore->Initialize(iStatus);
+        iCertState = EInitializeStore;    
+       
+        SetActive();   
+        iWait->Start();
+        TInt res = iStatus.Int();
+        }     
+    }
+
+
+
+// Checks for the existence of a certificate
+ // -----------------------------------------------------------------------------
+ TBool CCertStore::CheckCertInStore( const TDesC& aLabel )
+     {
+     RDEBUG("CCertStore::CheckCertInStore");
+
+    // Create filter
+    CCertAttributeFilter* filter = CCertAttributeFilter::NewL();
+    TCertLabel label( aLabel );
+    filter->SetLabel( label ); 
+    filter->SetFormat(EX509Certificate);
+    filter->SetOwnerType(ECACertificate);
+    iCertState = EExistsInStore;
+    
+    iCertStore->List( iCertInfoArray, *filter, iStatus );   
+    SetActive();    
+    iWait->Start();
+    
+    delete filter;
+    TBool retVal = ( iCertInfoArray.Count() > 0 ); 
+    
+    if(retVal)
+      {
+      iCertInfoRetrieved = iCertInfoArray[0];
+      }            
+    return retVal;    
+    }
+ 
+
+TInt CCertStore::RemoveCert(const TDesC& aCertLabel)
+    { 
+    RDEBUG("CCertStore::RemoveCert");
+    if(CheckCertInStore(aCertLabel))
+        {        
+        MCTWritableCertStore& writableStore = iCertStore->WritableCertStore(iStoreIndex);         
+        writableStore.Remove(*iCertInfoRetrieved, iStatus);        
+        iCertState = ERemoveCert;       
+        WaitUntilOperationDone();               
+        return KErrNone;             
+        }
+    else
+        return KErrNotFound;                 
+    }
+
+
+TInt CCertStore::GenerateNewCertLabel()
+    {
+    RDEBUG("CCertStore::GenerateNewCertLabel");
+    TInt result = KErrNone;
+    TInt counter=0;
+   
+    TRAPD( err, 
+            {
+            CRepository* rep = CRepository::NewL( KCRUidPolicyManagementUtilInternalKeys );
+            CleanupStack::PushL( rep );           
+            result = rep->Get( KCertificateCounter, counter );
+            RDEBUG_2("CCertStore::GenerateNewCertLabel( %d )", result );
+            CleanupStack::PopAndDestroy( rep );
+            } );
+    if( err != KErrNone )
+        {
+        result = err;
+        return err;
+        }   
+    iCertLabel=HBufC::NewL(KMaxLabelIdLength);     
+    // use central repository to generte new label each time for addition
+    *iCertLabel = KDMTrustedCertLabel;
+    TPtr ptr = iCertLabel->Des();
+    counter++;
+    ptr.AppendNum(counter);
+    iLabelCounter = counter;
+ 
+    return result;
+    }
+
+
+
+
+void CCertStore::UpdateLabelCounterInCR()
+    {
+    RDEBUG("CCertStore::UpdateLabelCounterInCR");
+
+    TInt res;
+    //update the CR with new counter value
+    TRAPD( err1, 
+           {
+           CRepository* rep = CRepository::NewL( KCRUidPolicyManagementUtilInternalKeys );
+           CleanupStack::PushL( rep );
+           res = rep->Set( KCertificateCounter, iLabelCounter );
+           RDEBUG_2("CCertStore::UpdateLabelCounterInCR( %d )", res );
+           CleanupStack::PopAndDestroy( rep );
+           } );
+
+    }
+
+
+HBufC* CCertStore::GetCurrentCertLabel()
+    {  
+    RDEBUG("CCertStore::GetCurrentCertLabel");
+
+    TInt counter;
+    TRAPD( err, 
+           {
+           CRepository* rep = CRepository::NewL( KCRUidPolicyManagementUtilInternalKeys );
+           CleanupStack::PushL( rep );
+           TInt res = rep->Get( KCertificateCounter, counter );           
+           CleanupStack::PopAndDestroy( rep );
+           } );
+    if(iCertLabel)
+        {
+        delete iCertLabel;
+        iCertLabel = NULL;
+        }
+    iCertLabel=HBufC::NewL(KMaxLabelIdLength);     
+    // use central repository to generte new label each time for addition
+    *iCertLabel = KDMTrustedCertLabel;
+    TPtr ptr = iCertLabel->Des();   
+    ptr.AppendNum(counter);
+    return iCertLabel;
+    }
+
+
+TInt CCertStore::AddCert(HBufC8 *aCertBuffer)
+    {  
+    RDEBUG("CCertStore::AddCert");
+
+    GenerateNewCertLabel();  
+    //create object of writable certificate store 
+    MCTWritableCertStore& writableStore = iCertStore->WritableCertStore(iStoreIndex);
+  
+    writableStore.Add(*iCertLabel,EX509Certificate, ECACertificate, NULL, NULL, *aCertBuffer,EFalse,iStatus);
+    iCertState = EAddCert;  
+    //SetActive();
+    WaitUntilOperationDone();    
+    return iStatus.Int();      
+    }
+
+
+void CCertStore::WaitUntilOperationDone()
+    {
+    SetActive();
+    iWait->Start();
+    }
+
+
+//Sets the writable certificate store index used for addition and removal
+void CCertStore::GetWritableCertStoreIndex()
+    {
+    RDEBUG("CCertStore::GetWritableCertStoreIndex");
+
+    //count total availiable cert stores.
+    TInt count = iCertStore->WritableCertStoreCount();                
+    
+    TBool found = EFalse;
+    TInt i = 0;
+    TPtrC pElementID(KSymbianCertificateStoreLabel());
+    
+    for (i = 0; (i < count) && (!found); i++)
+      {
+      // Select the first store with the specified label.
+     const TDesC& storeLabel = iCertStore->WritableCertStore(i).Token().Label();
+     if (storeLabel == pElementID)
+            {
+            found = ETrue;
+            iStoreIndex = i;
+            }                
+      }
+
+    }
+
+const TDesC8&  CCertStore::RetrieveCertFPrint(const TDesC& aCertLabel)
+    {
+    RDEBUG("CCertStore::RetrieveCertFPrint");
+
+    if(CheckCertInStore(aCertLabel))
+        {
+        MCTWritableCertStore& WritableStore = iCertStore->WritableCertStore(iStoreIndex);        
+        
+        iCertData = HBufC8::NewMaxL(iCertInfoRetrieved->Size());        
+        TPtr8 ptr = iCertData->Des();
+        
+        WritableStore.Retrieve(*iCertInfoRetrieved,ptr,iStatus);    
+        
+        iCertState = EGetFPrint;
+        
+        WaitUntilOperationDone();
+        RDEBUG("CCertStore::RetrieveCertFPrint");
+        return iFingerPrint;
+        
+        }
+    else
+      
+        RDEBUG("CCertStore::RetrieveCertFPrint-- not Found");
+        return TDesC8(KNoKeyFound) ;
+   
+    
+    
+    }
+
+void CCertStore::RunL()
+    {
+    RDEBUG("CCertStore::RunL");
+
+    TInt result = iStatus.Int();
+        if (iStatus == KErrNone) 
+            {
+            switch (iCertState) {              
+                    
+                case EInitializeStore:
+                    {                                 
+                    GetWritableCertStoreIndex();
+                    iWait->AsyncStop();  
+                    break;
+                    }
+                case ERemoveCert:                    
+                case EAddCert: 
+                case EExistsInStore:    
+                    {                   
+                    iWait->AsyncStop();                       
+                    break;
+                    }   
+                    
+               case EGetFPrint:
+                   {
+                   iWait->AsyncStop();
+                    CX509Certificate* certR = CX509Certificate::NewL(*iCertData);  
+                                       
+                    HBufC8* fingerprint = certR->Fingerprint().AllocL(); 
+                
+                    TBuf8<20> fingerP;                
+                    fingerP.Copy(fingerprint->Des());
+                    
+                                   
+                    iFingerPrint.Zero();
+                    
+                    //convert fingerprint to plain text
+                    for ( TInt i(0); i < fingerP.Length(); i++)
+                      {
+                      iFingerPrint.AppendNumFixedWidth(fingerP[i] , EHex,2);
+                      iFingerPrint.UpperCase();
+                      }                      
+                  
+                   delete fingerprint;
+                   delete certR;
+                   certR = NULL;
+                   break;                   
+                   }                   
+              
+              default:
+                    break;       
+            } 
+            
+           }
+        else
+            {
+            if(iWait)
+                {
+                iWait->AsyncStop();
+                }
+            }
+                
+          
+    }
+
+void CCertStore::DoCancel()
+    {
+    RDEBUG("CCertStore::DoCancel");
+
+    if (iWait && iWait->IsStarted() && iWait->CanStopNow()) 
+        {        
+        iWait->AsyncStop();
+        }  
+    switch( iCertState )
+       {
+          case EInitializeStore:          
+               {
+               iCertStore->CancelInitialize();
+               break;
+               }
+       }  
+
+    }
--- a/policymanagement/policyengine/policyengineui/PolicyEngineUI.pro	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/policyengineui/PolicyEngineUI.pro	Fri Sep 17 19:59:15 2010 +0530
@@ -35,7 +35,7 @@
     TARGET.UID3 = 0x10207817
 
     hblib.sources = Hb.dll
-    hblib.path = \sys\bin
+    hblib.path = /sys/bin
     hblib.depends = "(0xEEF9EA38), 1, 0, 0, {\"Hb\"}"
 
     pluginstub.sources = PolicyEngUINotifiersplugin.dll
--- a/policymanagement/policyengine/policyengineui/inc/PolicyEngineUI.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/policyengineui/inc/PolicyEngineUI.h	Fri Sep 17 19:59:15 2010 +0530
@@ -53,7 +53,10 @@
     //signal to be sent to client
     void deviceDialogClosed();
     void deviceDialogData(QVariantMap data);
-    
+  /**
+	 * applicationReady() - To emit the application ready signal for matti tool.
+   */
+    void applicationReady();
 private:
     // number of tries user does
     int estbTrustCount;
--- a/policymanagement/policyengine/policyengineui/src/PolicyEngineUI.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/policyengineui/src/PolicyEngineUI.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -131,6 +131,7 @@
     QObject::connect(secondaryAction, SIGNAL(triggered()), this,
             SLOT(onCancelSelected()));
 
+	emit applicationReady();
     if (dialog1)
         dialog1->show();
 
--- a/remotemgmt_plat/adaptive_history_list_api/adaptive_history_list_api.metaxml	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" ?>
-<api id="8d53812d56803ad2bef7ddd15c91413e" dataversion="1.0">
-  <name>Adaptive History List API</name>
-  <description>API providing basic list data structure. Order of items in the list is based on access frequency.</description>
-  <type>c++</type>
-  <subsystem>ahle</subsystem>
-  <libs>
-    <lib name="ahle2client.lib" />
-  </libs>
-  <release category="domain"/>
-  <attributes>
-     <!-- This indicates wether the api provedes separate html documentation -->
-     <!-- or is the additional documentation generated from headers. -->
-     <!-- If you are unsuere then the value is "no" -->
-     <htmldocprovided>yes</htmldocprovided>
-     <adaptation>no</adaptation>
-  </attributes>
-</api>
--- a/remotemgmt_plat/adaptive_history_list_api/group/bld.inf	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  File that exports the files belonging to 
-:                Adaptive History List API
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-../inc/ahlegenericapi.h     MW_LAYER_PLATFORM_EXPORT_PATH(ahlegenericapi.h)
-../inc/ahleobserver.h     MW_LAYER_PLATFORM_EXPORT_PATH(ahleobserver.h)
-../inc/ahlededicatedapi.h     MW_LAYER_PLATFORM_EXPORT_PATH(ahlededicatedapi.h)
-../inc/ahlegenericapi.inl     MW_LAYER_PLATFORM_EXPORT_PATH(ahlegenericapi.inl)
-../inc/ahlededicatedapi.inl     MW_LAYER_PLATFORM_EXPORT_PATH(ahlededicatedapi.inl)
--- a/remotemgmt_plat/adaptive_history_list_api/inc/ahlededicatedapi.h	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,493 +0,0 @@
-/*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  API definition for dedicated clients.
-*
-*/
-
-#ifndef MAHLEDEDICATEDAPI_H
-#define MAHLEDEDICATEDAPI_H
-
-#include <badesca.h>
-#include <ahlededicated.h>
-
-class MAHLEObserver;
-
-/**
-*  AHLE API for dedicated clients.
-*  Provides API interface for dedicated clients
-*
-*  @lib AHLE2CLIENT.lib
-*  @since Series 60 3.1
-*/
-class MAHLEDedicatedAPI
-    {
-    public:
-
-        /**
-        * Destructor.
-        */
-        inline virtual ~MAHLEDedicatedAPI();
-
-        /**
-        * Check if the client has been connected to the server
-        *
-        * @return ETrue if connected, otherwise EFalse
-        */
-        virtual TBool IsConnected() = 0;
-
-        /**
-        * Set client observer
-        *
-        * @param aObserver client observer
-        */
-        virtual void SetObserverL(const MAHLEObserver* aObserver) = 0;
-
-        /**
-        * Cancel client observer
-        */
-        virtual void CancelObserver() = 0;
-
-        /**
-        * Engine reconfiguration.
-        * New storage sizes have to be explicitly specified.
-        *
-        * @param aPrimarySize New primary storage size.
-        * @param aSecondarySize New secondary storage size.
-        * @param aAdaptationSpeed New adaptation speed.
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file) and
-        *          KErrArgument if one of parameters is out of range.
-        */
-        virtual TInt Reconfigure(
-                TUint aPrimarySize,
-                TUint aSecondarySize,
-                TReal32 aAdaptationSpeed) = 0;
-
-        /**
-        * Current engine configuration.
-        *
-        * @param aPrimarySize Current primary storage size.
-        * @param aSecondarySize Current secondary storage size.
-        * @param aAdaptationSpeed Current adaptation speed.
-        */
-        virtual TInt GetConfiguration(
-                TUint& aPrimarySize,
-                TUint& aSecondarySize,
-                TReal32& aAdaptationSpeed) = 0;
-
-        /**
-        * Logging new access synchronously.
-        * Used by Browser, Emails, Logs, Messaging, Phonebook
-        *
-        * @param aItem Access descriptor, key value in adaptive list
-        *              Browser - url. URLs should follow URI Generic Syntax
-        *                          described in RFC 2396
-        *              Emails - email address
-        *              Logs - telephone number
-        *              Messaging - linkID
-        *              Phonebook - linkID
-        * @param aDescription specific information about aItem
-        *              Browser - name (e.g. Content of WML/HTML title tag)
-        *                  (defaults to empty string)
-        *              Emails - defaults to empty string
-        *              Logs - defaults to empty string
-        *              Messaging - telephone number or e-mail address
-        *                          (second part of key value)
-        *              Phonebook - telephone number (second part of key value)
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is in use (e.g. reading or writing file) and
-        *          KErrArgument if size of one of parameters is out of range.
-        */
-        virtual TInt NewAccess(
-                const TDesC& aItem,
-                const TDesC& aDescription = KAHLEItemDefaultDescription) = 0;
-
-        /**
-        * Logging new access asynchronously.
-        * Used by Browser, Emails, Logs, Messaging, Phonebook
-        *
-        * @param aStatus Asychronous request status.
-        * @param aItem Access descriptor, key value in adaptive list
-        *              Browser - url. URLs should follow URI Generic Syntax
-        *                          described in RFC 2396
-        *              Emails - email address
-        *              Logs - telephone number
-        *              Messaging - linkID
-        *              Phonebook - linkID
-        * @param aDescription Name or telephone number
-        *              Browser - name (e.g. Content of WML/HTML title tag)
-        *                        (defaults to empty string)
-        *              Emails - defaults to empty string
-        *              Logs - defaults to empty string
-        *              Messaging - telephone number or e-mail address
-        *                          (second part of key value)
-        *              Phonebook - telephone number (second key value)
-        */
-        virtual void NewAccessL(
-                TRequestStatus& aStatus,
-                const TDesC& aItem,
-                const TDesC& aDescription = KAHLEItemDefaultDescription) = 0;
-
-        /**
-        * Get adaptive list synchronously. Used by Emails and Logs.
-        *
-        * @param aItems Descriptor array containing items in ranked order.
-        *              Emails - email addresses
-        *              Logs - telephone numbers
-        * @param aSize Maximum length of returned list
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file).
-        */
-        virtual TInt AdaptiveListL(
-                CDesCArray&  aItems,
-                const TUint  aSize) = 0;
-
-        /**
-        * Get adaptive list asynchronously. Used by Emails and Logs.
-        *
-        * @param aStatus Asynchronous request status.
-        * @param aItems Descriptor array containing items in ranked order.
-        *              Emails - email addresses
-        *              Logs - telephone numbers
-        * @param aSize Maximum length of returned list
-        */
-        virtual void AdaptiveListL(
-                TRequestStatus& aStatus,
-                CDesCArray& aItems,
-                const TUint aSize) = 0;
-
-        /**
-        * Get adaptive list synchronously.
-        * Used by Browser, Messaging and Phonebook.
-        * For Browser there is an option of selecting sites/groups or details
-        * (e.g. All the urls within a site or members of a group) for a
-        * site/group. In case of auto-complete, parameter
-        * EAHLEAdaptiveAutoComplete as aState should be used.
-        *
-        * @param aItems Descriptor array containing key items in ranked order
-        *              Browser - array of URLs
-        *              Messaging - array of linkIDs
-        *              Phonebook - array of linkIDs
-        * @param aDescription Descriptor array containing names or telephone
-        *        numbers in ranked order
-        *              Browser - array of URL names
-        *              Messaging - array of telephone numbers or
-        *                          e-mail addresses (indirectly thrue phonebook)
-        *              Phonebook - array of telephone numbers
-        * @param aSize Maximum length of returned list
-        * @param aMatch
-        *              Browser - Substring to match beginnings of adaptive list
-        *                        items. Matching is case insensitive.
-        *              Messaging - default value
-        *              Phonebook - default value
-        * @param aState
-        *              Browser - Details of adaptive list items - possible
-        *                         values:
-        *                  EAHLEAdaptiveSiteList,
-        *                  EAHLEAdaptiveSiteDetails and
-        *                  EAHLEAdaptiveAutoComplete.
-        *              Messaging - default value
-        *              Phonebook - default value
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file) and
-        *          KErrArgument if size of one of parameters is incorrect.
-        */
-        virtual TInt AdaptiveListL(
-                CDesCArray&  aItems,
-                CDesCArray& aDescription,
-                const TUint aSize,
-                const TDesC& aMatch = KAHLENoMatch,
-                const TAHLEState aState = EAHLEAdaptiveSiteList) = 0;
-
-        /**
-        * Get adaptive list asynchronously.
-        * Used by Browser, Messaging and Phonebook.
-        * For Browser there is an option of selecting sites/groups or details
-        * (e.g. All the urls within a site or members of a group) for a
-        * site/group. In case of auto-complete, parameter
-        * EAHLEAdaptiveAutoComplete as aState should be used.
-        *
-        * @param aStatus Asynchronous request status.
-        * @param aItems Descriptor array containing key items in ranked order
-        *              Browser - array of URLs
-        *              Messaging - array of linkIDs
-        *              Phonebook - array of linkIDs
-        * @param aDescription Descriptor array containing names or telephone
-        *        numbers in ranked order
-        *              Browser - array of URL names
-        *              Messaging - array of telephone numbers or
-        *                          e-mail addresses (indirectly thrue phonebook)
-        *              Phonebook - array of telephone numbers
-        * @param aSize Maximum length of returned list
-        * @param aMatch
-        *              Browser - Substring to match beginnings of adaptive list
-        *                        items. Matching is case insensitive.
-        *              Messaging - default value
-        *              Phonebook - default value
-        * @param aState
-        *              Browser - Details of adaptive list items - possible
-        *                         values:
-        *                  EAHLEAdaptiveSiteList,
-        *                  EAHLEAdaptiveSiteDetails and
-        *                  EAHLEAdaptiveAutoComplete.
-        *              Messaging - default value
-        *              Phonebook - default value
-        */
-        virtual void AdaptiveListL(
-                TRequestStatus& aStatus,
-                CDesCArray&  aItems,
-                CDesCArray&  aDescription,
-                const TUint  aSize,
-                const TDesC& aMatch = KAHLENoMatch,
-                const TAHLEState aState = EAHLEAdaptiveSiteList) = 0;
-
-        /**
-        * Remove item synchronously.
-        * Used by Browser, Emails, Logs, Messaging, Phonebook
-        *
-        * @param aItem Item to be removed
-        *              Browser - a url
-        *              Emails - an email
-        *              Logs - a telephone number
-        *              Messaging - linkID
-        *              Phonebook - linkID
-        * @param aPhoneNumber telephone number to be removed from a contact
-        *              Browser - defaults to empty string
-        *              Emails - defaults to empty string
-        *              Logs - defaults to empty string
-        *              Messaging - telephone number or e-mail address
-        *              Phonebook - telephone number
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file) and
-        *          KErrArgument if size of one of parameters is to long.
-        */
-        virtual TInt Remove(
-                const TDesC& aItem,
-                const TDesC& aPhoneNumber = KAHLEItemDefaultDescription) = 0;
-
-        /**
-        * Remove item asynchronously.
-        * Used by Browser, Emails, Logs, Messaging, Phonebook
-        *
-        * @param aStatus Request status (in asynchronous versions)
-        * @param aItem Item to be removed
-        *              Browser - a url
-        *              Emails - an email
-        *              Logs - a telephone number
-        *              Messaging - linkID
-        *              Phonebook - linkID
-        * @param aPhoneNumber telephone number to be removed from a contact
-        *              Browser - defaults to empty string
-        *              Emails - defaults to empty string
-        *              Logs - defaults to empty string
-        *              Messaging - telephone number or e-mail address
-        *              Phonebook - telephone number
-        */
-        virtual void RemoveL(
-                TRequestStatus& aStatus,
-                const TDesC& aItem,
-                const TDesC& aPhoneNumber = KAHLEItemDefaultDescription) = 0;
-
-        /**
-        * Remove items synchronously.
-        * Used by Browser, Emails, Logs
-        *
-        * @param aItems Items to be removed
-        *              Browser - array of urls
-        *              Emails - array of emails
-        *              Logs - array of telephone numbers
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file) and
-        *          KErrArgument if table is empty or one of items in table is
-        *          empty.
-        */
-        virtual TInt RemoveL(const CDesCArray& aItems) = 0;
-
-        /**
-        * Remove items asynchronously.
-        * Used by Browser, Emails, Logs
-        *
-        * @param aStatus Request status
-        * @param aItems Items to be removed
-        *              Browser - array of urls
-        *              Emails - array of emails
-        *              Logs - array of telephone numbers
-        */
-        virtual void RemoveL(
-                TRequestStatus& aStatus,
-                const CDesCArray& aItems) = 0;
-
-
-        /**
-        * Remove items synchronously.
-        * Used by Messaging, Phonebook
-        *
-        * @param aItems Array of linkIDs to be removed
-        * @param aPhoneNumbers Array of telephone numbers or/and
-        *                      e-mail addresses to be removed
-        *        from a contact.
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file)  and
-        *          KErrArgument if table is empty or one of items in table is
-        *          empty.
-        */
-        virtual TInt RemoveL(
-                const CDesCArray& aItems,
-                const CDesCArray& aPhoneNumbers) = 0;
-
-        /**
-        * Remove items asynchronously.
-        * Used by Messaging, Phonebook
-        *
-        * @param aStatus Request status
-        * @param aItems Array of linkIDs to be removed
-        * @param aPhoneNumbers Array of telephone numbers or/and
-        *                      e-mail addresses to be removed
-        */
-        virtual void RemoveL(
-                TRequestStatus& aStatus,
-                const CDesCArray& aItems,
-                const CDesCArray& aPhoneNumbers) = 0;
-
-        /**
-        * Remove matching items synchronously.
-        * Used by Browser, Messaging, Phonebook
-        *
-        * @param aMatch Match for items to be removed.
-        *              Browser - matching string. Removes all items that match
-        *                  the given string. Matching is case sensitive.
-        *              Messaging - linkID. Removes all items corresponding to
-        *                  the linkID
-        *              Phonebook - linkID. Removes all items corresponding to
-        *                  the linkID
-        * @returns The number of removed items, or otherwise an error code.
-        *          Returns KErrInUse if AHLE server is busy (e.g. reading or
-        *          writing file) and KErrArgument if match is to long.
-        */
-        virtual TInt RemoveMatching(const TDesC& aMatch) = 0;
-
-        /**
-        * Remove matching items asynchronously.
-        * Used by Browser, Messaging, Phonebook
-        *
-        * @param aStatus Request status
-        * @param aMatch Match for items to be removed.
-        *              Browser - matching string. Removes all items that match
-        *                  the given string. Matching is case sensitive.
-        *              Messaging - linkID. Removes all items corresponding to
-        *                  the linkID
-        *              Phonebook - linkID. Removes all items corresponding to
-        *                  the linkID
-        */
-        virtual void RemoveMatchingL(
-                TRequestStatus& aStatus,
-                const TDesC& aMatch) = 0;
-
-        /**
-        * Rename item synchronously
-        * Used by Browser, Messaging, Phonebook
-        *
-        * @param aItem Item to be renamed
-        *              Browser - a url
-        *              Messaging - linkID
-        *              Phonebook - linkID
-        * @param aNewDescription New description.
-        *              Browser - new name of url
-        *              Messaging - new telephone number or e-mail address
-        *              Phonebook - new telephone number
-        * @param aDescription  Description to be renamed.
-        *              Browser - defaults to empty string
-        *              Messaging - old telephone number or e-mail address
-        *              Phonebook - old telephone number
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file) and
-        *          KErrArgument if size of one of parameters is to long.
-        */
-        virtual TInt RenameL(
-                const TDesC& aItem,
-                const TDesC& aNewDescription,
-                const TDesC& aDescription = KAHLEItemDefaultDescription) = 0;
-
-        /**
-        * Rename item asynchronously
-        * Used by Browser, Messaging, Phonebook
-        *
-        * @param aStatus Request status
-        * @param aItem Item to be renamed
-        *              Browser - a url
-        *              Messaging - linkID
-        *              Phonebook - linkID
-        * @param aNewDescription New description.
-        *              Browser - new name of url
-        *              Messaging - new telephone number or e-mail address
-        *              Phonebook - new telephone number
-        * @param aDescription  Description to be renamed.
-        *              Browser - defaults to empty string
-        *              Messaging - old telephone number or e-mail address
-        *              Phonebook - old telephone number
-        */
-        virtual void RenameL(
-                TRequestStatus& aStatus,
-                const TDesC& aItem,
-                const TDesC& aNewDescription,
-                const TDesC& aDescription = KAHLEItemDefaultDescription) = 0;
-
-        /**
-        * Clear all adaptive list items synchronously
-        *
-        * @returns KErrNone if ok, otherwise an error code.
-        *          Returns KErrInUse if AHLE server is busy
-        *          (e.g. reading or writing file).
-        */
-        virtual TInt Clear() = 0;
-
-        /**
-        * Clear all adaptive list items asynchronously
-        *
-        * @param aStatus Request status
-        */
-        virtual void Clear(TRequestStatus& aStatus) = 0;
-
-        /**
-        * Flush cached items to persistent storage synchronously
-        *
-        * @returns KErrNone if ok, otherwise an error code.
-        *          Returns KErrInUse if AHLE server is busy
-        *          (e.g. reading or writing file).
-        */
-        virtual TInt Flush() = 0;
-
-        /**
-        * Flush cached items to persistent storage asynchronously
-        *
-        * @param aStatus Request status
-        * @returns KErrNone if ok, otherwise an error code.
-        *          Returns KErrInUse if AHLE server is busy
-        *          (e.g. reading or writing file).
-        */
-        virtual void Flush(TRequestStatus& aStatus) = 0;
-    };
-
-#include "ahlededicatedapi.inl"
-
-/**
-* AHLE Client API constructor
-* @param aClientType AHLE client type
-* @return MAHLEDedicatedAPI pointer to AHLE Client API
-*/
-IMPORT_C MAHLEDedicatedAPI* NewAHLEClientL(TAHLEClientType aClientType);
-
-#endif      // MAHLEDEDICATEDAPI_H
-
-// End of File
--- a/remotemgmt_plat/adaptive_history_list_api/inc/ahlededicatedapi.inl	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  AHLE dedicated API inline destructor
-*
-*/
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// MAHLEDedicatedAPI::~MAHLEDedicatedAPI
-// Virtual destructor.
-// -----------------------------------------------------------------------------
-//
-inline MAHLEDedicatedAPI::~MAHLEDedicatedAPI()
-    {
-    }
-
-// End of File
--- a/remotemgmt_plat/adaptive_history_list_api/inc/ahlegenericapi.h	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,293 +0,0 @@
-/*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  API ddefinition for generic clients and SDK.
-*
-*/
-
-#ifndef MAHLEGENERICAPI_H
-#define MAHLEGENERICAPI_H
-
-#include <badesca.h>
-#include <ahlegeneric.h>
-
-class MAHLEObserver;
-
-class MAHLEGenericAPI
-    {
-    public:
-
-        /**
-        * Destructor.
-        */
-        inline virtual ~MAHLEGenericAPI();
-
-        /**
-        * Check if the client has been connected to the server
-        *
-        * @return ETrue if connected, otherwise EFalse
-        */
-        virtual TBool IsConnected() = 0;
-
-        /**
-        * Set client observer
-        *
-        * @param aObserver client observer
-        */
-        virtual void SetObserverL(const MAHLEObserver* aObserver) = 0;
-
-        /**
-        * Cancel client observer
-        */
-        virtual void CancelObserver() = 0;
-
-        /**
-        * Engine reconfiguration.
-        * New storage sizes have to be explicitly specified.
-        *
-        * @param aPrimarySize New primary storage size.
-        * @param aSecondarySize New secondary storage size.
-        * @param aAdaptationSpeed New adaptation speed.
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file) and
-        *          KErrArgument if one of parameters is out of range.
-        */
-        virtual TInt Reconfigure(
-                TUint aPrimarySize,
-                TUint aSecondarySize,
-                TReal32 aAdaptationSpeed) = 0;
-
-        /**
-        * Current engine configuration.
-        *
-        * @param aPrimarySize Current primary storage size.
-        * @param aSecondarySize Current secondary storage size.
-        * @param aAdaptationSpeed Current adaptation speed.
-        */
-        virtual TInt GetConfiguration(
-                TUint& aPrimarySize,
-                TUint& aSecondarySize,
-                TReal32& aAdaptationSpeed) = 0;
-
-        /**
-        * Logging new access synchronously.
-        *
-        * @param aItem Access descriptor, key value in adaptive list
-        * @param aName Name descriptor (defaults to empty string).
-        * @param aWeight Weight of an item (defaults to 1).
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is in use (e.g. reading or writing file) and
-        *          KErrArgument if size of one of parameters is out of range.
-        */
-        virtual TInt NewAccess(
-                const TDesC& aItem,
-                const TDesC& aName = KAHLEItemDefaultName,
-                TReal32 aWeight = KAHLEDefaultWeight) = 0;
-
-        /**
-        * Logging new access asynchronously.
-        *
-        * @param aStatus Asychronous request status.
-        * @param aItem Access descriptor, key value in adaptive list
-        * @param aName Name descriptor (defaults to empty string).
-        * @param aWeight Weight of an item (defaults to 1).
-        */
-        virtual void NewAccessL(
-                TRequestStatus& aStatus,
-                const TDesC& aItem,
-                const TDesC& aName = KAHLEItemDefaultName,
-                TReal32 aWeight = KAHLEDefaultWeight) = 0;
-
-        /**
-        * Get adaptive list synchronously.
-        *
-        * @param aItems Descriptor array containing items in ranked order.
-        * @param aNames Descriptor array containing aItems names
-        * @param aSize Maximum length of returned list
-        * @param aMatch Substring to match beginnings of adaptive list items
-        *        (optional, default is to match everything). Matching is case
-        *        sensitive.
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file) and
-        *          KErrArgument if aMatch is to long.
-        */
-        virtual TInt AdaptiveListL(
-                CDesCArray&  aItems,
-                CDesCArray&  aNames,
-                const TUint  aSize,
-                const TDesC& aMatch = KAHLENoMatch) = 0;
-
-        /**
-        * Get adaptive list asynchronously.
-        *
-        * @param aStatus Asynchronous request status.
-        * @param aItems Descriptor array containing items in ranked order.
-        * @param aNames Descriptor array containing aItems names
-        * @param aSize Maximum length of returned list
-        * @param aMatch Substring to match beginnings of adaptive list items
-        *        (optional, default is to match everything). Matching is case
-        *        sensitive.
-        */
-        virtual void AdaptiveListL(
-                TRequestStatus& aStatus,
-                CDesCArray& aItems,
-                CDesCArray& aNames,
-                const TUint aSize,
-                const TDesC& aMatch = KAHLENoMatch) = 0;
-
-        /**
-        * Remove item synchronously.
-        *
-        * @param aItem Item to be removed
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file)
-        *          and KErrArgument if size of parameter is out of range.
-        */
-        virtual TInt Remove(const TDesC& aItem) = 0;
-
-        /**
-        * Remove item asynchronously.
-        *
-        * @param aStatus Request status (in asynchronous versions)
-        * @param aItem Item to be removed
-        */
-        virtual void RemoveL(TRequestStatus& aStatus, const TDesC& aItem) = 0;
-
-        /**
-        * Remove items synchronously.
-        *
-        * @param aItems Items to be removed
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file) and
-        *          KErrArgument if table is empty or one of items in table is
-        *          empty.
-        */
-        virtual TInt RemoveL(const CDesCArray& aItems) = 0;
-
-        /**
-        * Remove items asynchronously.
-        *
-        * @param aStatus Request status
-        * @param aItems Items to be removed
-        */
-        virtual void RemoveL(
-                TRequestStatus& aStatus,
-                const CDesCArray& aItems) = 0;
-
-        /**
-        * Remove matching items synchronously.
-        *
-        * @param aMatch Match for items to be removed. Matching is case
-        *        sensitive.
-        * @returns The number of removed items, or otherwise an error code.
-        *          Returns KErrInUse if AHLE server is busy (e.g. reading or
-        *          writing file) and KErrArgument if match is to long.
-        */
-        virtual TInt RemoveMatching(const TDesC& aMatch) = 0;
-
-        /**
-        * Remove matching items asynchronously.
-        *
-        * @param aStatus Request status
-        * @param aMatch Match for items to be removed. Matching is case
-        *        sensitive.
-        */
-        virtual void RemoveMatchingL(
-                TRequestStatus& aStatus,
-                const TDesC& aMatch) = 0;
-
-        /**
-        * Rename item synchronously
-        *
-        * @param aItem Item to be renamed
-        * @param aNewName New name for the item.
-        * @returns KErrNone if ok, otherwise an error code. Returns KErrInUse
-        *          if AHLE server is busy (e.g. reading or writing file)
-        *          and KErrArgument if size of one of parameters is to long.
-        */
-        virtual TInt RenameL(const TDesC& aItem, const TDesC& aNewName) = 0;
-
-        /**
-        * Rename item asynchronously
-        *
-        * @param aItem Item to be renamed
-        * @param aNewName New name for the item.
-        */
-        virtual void RenameL(
-                TRequestStatus& aStatus,
-                const TDesC& aItem,
-                const TDesC& aNewName) = 0;
-
-        /**
-        * Clear all adaptive list items synchronously
-        *
-        * @returns KErrNone if ok, otherwise an error code.
-        *          Returns KErrInUse if AHLE server is busy
-        *          (e.g. reading or writing file).
-        */
-        virtual TInt Clear() = 0;
-
-        /**
-        * Clear all adaptive list items asynchronously
-        *
-        * @param aStatus Request status
-        */
-        virtual void Clear(TRequestStatus& aStatus) = 0;
-
-        /**
-        * Flush cached items to persistent storage synchronously
-        *
-        * @returns KErrNone if ok, otherwise an error code.
-        *          Returns KErrInUse if AHLE server is busy
-        *          (e.g. reading or writing file).
-        */
-        virtual TInt Flush() = 0;
-
-        /**
-        * Flush cached items to persistent storage asynchronously
-        *
-        * @param aStatus Request status
-        * @returns KErrNone if ok, otherwise an error code.
-        *          Returns KErrInUse if AHLE server is busy
-        *          (e.g. reading or writing file).
-        */
-        virtual void Flush(TRequestStatus& aStatus) = 0;
-
-        /**
-        * Sorts items by their weights.
-        * @param aItems Descriptor array containing items to be sorted.
-        * @param aItemsSorted Array containing those indexes of items from
-        *        aItems array that are also found from Adaptive History List
-        *        Engine ordered by their weight
-        *        (in Adaptive History List Engine).
-        * @param aSortOrder Sorting items order (ascending or descending)
-        * @return KErrNone if ok, otherwise an error code.
-        */
-        virtual TInt OrderByWeightL(
-                const CDesCArray& aItems,
-                RArray<TInt>& aItemsSorted,
-                TAHLESortOrder aSortOrder = EAHLEAscending) = 0;
-    };
-
-#include <ahlegenericapi.inl>
-
-/**
-* AHLE Client API constructor
-* @param aDatabaseName Name of the database.
-* @return MAHLEGenericAPI pointer to AHLE Client API
-*/
-IMPORT_C MAHLEGenericAPI* NewAHLEClientL(const TDesC& aDatabaseName);
-
-#endif      // MAHLEGENERICAPI_H
-
-// End of File
--- a/remotemgmt_plat/adaptive_history_list_api/inc/ahlegenericapi.inl	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  AHLE generic API inline destructor
-*
-*/
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// MAHLEGenericAPI::~MAHLEGenericAPI
-// Virtual destructor.
-// -----------------------------------------------------------------------------
-//
-inline MAHLEGenericAPI::~MAHLEGenericAPI()
-    {
-    }
-
-// End of File
--- a/remotemgmt_plat/adaptive_history_list_api/inc/ahleobserver.h	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Interface for AHLE engine observer class.
-*
-*/
-
-#ifndef MAHLEOBSERVER_H
-#define MAHLEOBSERVER_H
-
-#include "e32def.h"
-
-/**
-*  Interface for AHLE engine observer class.
-*
-*  @lib AHLE2CLIENT.dll
-*  @since Series 60 3.1
-*/
-class MAHLEObserver
-    {
-    public:
-
-        /**
-        * Observer method invoked when primary storage is changed.
-        *
-        * @param anError KErrNone if ok, otherwise an other error code.
-        */
-        virtual void AdaptiveListChanged(const TInt aError) = 0;
-    };
-
-#endif      // MAHLEOBSERVER_H
-
-// End of File
--- a/remotemgmt_plat/adaptive_history_list_session_api/adaptive_history_list_session_api.metaxml	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-<?xml version="1.0" ?>
-<api id="9a9b610faafbea8dbb06dfd3dd620c02" dataversion="1.0">
-  <name>Adaptive History List Session API</name>
-  <description></description>
-  <type>c++</type>
-  <subsystem>ahle</subsystem>
-  <libs>
-  </libs>
-  <release category="domain"/>
-  <attributes>
-     <!-- This indicates wether the api provedes separate html documentation -->
-     <!-- or is the additional documentation generated from headers. -->
-     <!-- If you are unsuere then the value is "no" -->
-     <htmldocprovided>yes</htmldocprovided>
-     <adaptation>no</adaptation>
-  </attributes>
-</api>
--- a/remotemgmt_plat/adaptive_history_list_session_api/group/bld.inf	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  File that exports the files belonging to 
-:                Adaptive History List Session API
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-../inc/ahlegeneric.h     MW_LAYER_PLATFORM_EXPORT_PATH(ahlegeneric.h)
-../inc/ahlededicated.h     MW_LAYER_PLATFORM_EXPORT_PATH(ahlededicated.h)
--- a/remotemgmt_plat/adaptive_history_list_session_api/inc/ahlededicated.h	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Common definitions for dedicated clients.
-*
-*/
-
-#ifndef AHLEDEDICATED_H
-#define AHLEDEDICATED_H
-
-#include <e32def.h>
-#include <e32cmn.h>
-#include "ahlegeneric.h"
-
-_LIT(KAHLEItemDefaultDescription, "");
-
-enum TAHLEClientType
-{
-    EAHLEGeneric,
-    EAHLEBrowser,
-    EAHLEPhonebook,
-    EAHLEMessaging,
-    EAHLELogs,
-    EAHLEEmail
-};
-
-enum TAHLEState
-{
-    EAHLEAdaptiveSiteList,
-    EAHLEAdaptiveSiteDetails,
-    EAHLEAdaptiveAutoComplete
-};
-
-
-#endif      // AHLEDEDICATED_H
-
-//  End of File
--- a/remotemgmt_plat/adaptive_history_list_session_api/inc/ahlegeneric.h	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Common definitions for generic clients.
-*
-*/
-
-#ifndef AHLEGENERIC_H
-#define AHLEGENERIC_H
-
-_LIT(KAHLEItemDefaultName, "");
-_LIT(KAHLENoMatch, "");
-
-const TUint KAHLEMaxItemLength = 1024;
-const TUint KAHLEMaxDescriptionLength = 256;
-
-const static TReal32 KAHLEDefaultWeight = 1;
-
-enum TAHLESortOrder
-    {
-    EAHLEAscending,
-    EAHLEDescending
-    };
-
-#endif      // AHLEGENERIC_H
-
-//  End of File
--- a/remotemgmt_plat/data_synchronization_plugin_api/group/bld.inf	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/data_synchronization_plugin_api/group/bld.inf	Fri Sep 17 19:59:15 2010 +0530
@@ -24,20 +24,11 @@
 
 PRJ_EXPORTS
 
-//../inc/SmlDataProvider.h     MW_LAYER_PLATFORM_EXPORT_PATH(SmlDataProvider.h)
-//../inc/SyncMLDataFilter.h     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLDataFilter.h)
-//../inc/SmlDataFormat.hrh     MW_LAYER_PLATFORM_EXPORT_PATH(SmlDataFormat.hrh)
-//../inc/SyncMLDataFilter.hrh     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLDataFilter.hrh)
-//../inc/SyncMLDataFilter.rh     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLDataFilter.rh)
-//../inc/syncml/SmlDataSyncDefs.h     MW_LAYER_PLATFORM_EXPORT_PATH(syncml/SmlDataSyncDefs.h)
-//../inc/SmlDataFormat.h     MW_LAYER_PLATFORM_EXPORT_PATH(SmlDataFormat.h)
-//../inc/SmlDataFormat.rh     MW_LAYER_PLATFORM_EXPORT_PATH(SmlDataFormat.rh)
-
-../inc/SmlDataProvider.h		/epoc32/include/SmlDataProvider.h
-../inc/SmlDataFormat.hrh		/epoc32/include/SmlDataFormat.hrh
-../inc/SyncMLDataFilter.h		/epoc32/include/SyncMLDataFilter.h
-../inc/SyncMLDataFilter.rh		/epoc32/include/SyncMLDataFilter.rh
-../inc/SyncMLDataFilter.hrh		/epoc32/include/SyncMLDataFilter.hrh
-../inc/syncml/SmlDataSyncDefs.h		/epoc32/include/syncml/SmlDataSyncDefs.h
-../inc/SmlDataFormat.h			/epoc32/include/SmlDataFormat.h
-../inc/SmlDataFormat.rh		/epoc32/include/SmlDataFormat.rh
+../inc/SmlDataProvider.h		MW_LAYER_PLATFORM_EXPORT_PATH(SmlDataProvider.h)
+../inc/SmlDataFormat.hrh		MW_LAYER_PLATFORM_EXPORT_PATH(SmlDataFormat.hrh)
+../inc/SyncMLDataFilter.h		MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLDataFilter.h)
+../inc/SyncMLDataFilter.rh		MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLDataFilter.rh)
+../inc/SyncMLDataFilter.hrh		MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLDataFilter.hrh)
+../inc/syncml/SmlDataSyncDefs.h		MW_LAYER_PLATFORM_EXPORT_PATH(SmlDataSyncDefs.h)
+../inc/SmlDataFormat.h			MW_LAYER_PLATFORM_EXPORT_PATH(SmlDataFormat.h)
+../inc/SmlDataFormat.rh			MW_LAYER_PLATFORM_EXPORT_PATH(SmlDataFormat.rh)
--- a/remotemgmt_plat/data_synchronization_plugin_api/inc/SmlDataProvider.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/data_synchronization_plugin_api/inc/SmlDataProvider.h	Fri Sep 17 19:59:15 2010 +0530
@@ -21,7 +21,7 @@
 //
 #include <SyncMLDef.h>
 #include <SyncMLDataFilter.h>
-#include <syncml/SmlDataSyncDefs.h>
+#include <SmlDataSyncDefs.h>
 #include <SmlDataFormat.h>
 //
 /**
--- a/remotemgmt_plat/device_management_plugin_api/group/bld.inf	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/device_management_plugin_api/group/bld.inf	Fri Sep 17 19:59:15 2010 +0530
@@ -24,9 +24,6 @@
 
 PRJ_EXPORTS
 
-//../inc/smldmadapter.inl     MW_LAYER_PLATFORM_EXPORT_PATH(smldmadapter.inl)
-//../inc/smldmadapter.h     MW_LAYER_PLATFORM_EXPORT_PATH(smldmadapter.h)
+../inc/smldmadapter.inl     MW_LAYER_PLATFORM_EXPORT_PATH(smldmadapter.inl)
+../inc/smldmadapter.h     MW_LAYER_PLATFORM_EXPORT_PATH(smldmadapter.h)
 
-
-../inc/smldmadapter.inl		/epoc32/include/smldmadapter.inl
-../inc/smldmadapter.h			/epoc32/include/smldmadapter.h
\ No newline at end of file
--- a/remotemgmt_plat/group/bld.inf	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/group/bld.inf	Fri Sep 17 19:59:15 2010 +0530
@@ -40,10 +40,7 @@
 #include "../dm_constant_definitions_api/group/bld.inf"
 #include "../oma_ds_extensions_api/group/bld.inf"
 #include "../pnpms_utils_api/group/bld.inf"
-#include "../adaptive_history_list_api/group/bld.inf"
-#include "../adaptive_history_list_session_api/group/bld.inf"
 #include "../fota_engine_api/group/bld.inf"
-#include "../update_package_storage_plugin_api/group/bld.inf"
 #include "../dcmo_adapter_api/group/bld.inf"
 #include "../dcmo_control_api/group/bld.inf"
 #include "../ds_capability_mgmt_plugin_api/group/bld.inf"
--- a/remotemgmt_plat/oma_ds_extensions_api/inc/nsmlsnapshotitem.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/oma_ds_extensions_api/inc/nsmlsnapshotitem.h	Fri Sep 17 19:59:15 2010 +0530
@@ -21,7 +21,7 @@
 
 //  INCLUDES
 #include <e32base.h>
-#include <syncml/SmlDataSyncDefs.h>
+#include <SmlDataSyncDefs.h>
 
 // CLASS DECLARATION
 
--- a/remotemgmt_plat/policy_management_request_api/inc/PolicyEngineClient.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/policy_management_request_api/inc/PolicyEngineClient.h	Fri Sep 17 19:59:15 2010 +0530
@@ -28,6 +28,7 @@
 
 #include <e32std.h>
 #include <ssl.h>
+#include <x509cert.h>
 
 // CONSTANTS
 // MACROS
@@ -144,6 +145,23 @@
 	    * @return Symbian error code
         */
 		IMPORT_C TInt CertificateRole( TCertInfo& aCertInfo, TRole& aRole);			
+		
+        /**
+        * AddServerCert sets the certificate received from 
+        * server and makes it as trusted.
+        * @param aCert certificate recieved for storage
+        * @return KErrNone Symbian error code
+        */		
+		IMPORT_C TInt AddServerCert(const CX509Certificate& aCert, TDes& aLabel);
+        
+		
+		/**
+        * RemoveServerCert removes the certificate stored 
+        * in the cert store.
+        * @param aLabel label of certificate to be removed
+        * @return KErrNone Symbian error code
+        */
+        IMPORT_C TInt RemoveServerCert(const TDesC& aLabel = KNullDesC);
 };
 
 /**
--- a/remotemgmt_plat/policy_management_request_api/tsrc/conf/PolicyEngineClient.cfg	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/policy_management_request_api/tsrc/conf/PolicyEngineClient.cfg	Fri Sep 17 19:59:15 2010 +0530
@@ -93,4 +93,18 @@
 create policy_management_request_api foobar
 foobar GetXACMLDescription root_element
 delete foobar
+[Endtest]
+
+[Test]
+title AddServerCert
+create policy_management_request_api foobar
+foobar AddServerCert root_element
+delete foobar
+[Endtest]
+
+[Test]
+title RemoveServerCert
+create policy_management_request_api foobar
+foobar RemoveServerCert root_element
+delete foobar
 [Endtest]
\ No newline at end of file
--- a/remotemgmt_plat/policy_management_request_api/tsrc/group/policy_management_request_api.mmp	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/policy_management_request_api/tsrc/group/policy_management_request_api.mmp	Fri Sep 17 19:59:15 2010 +0530
@@ -55,6 +55,7 @@
 LIBRARY 	  	PMRFSClient.lib
 LIBRARY 	  	TrustClient.lib
 LIBRARY         efsrv.lib
+LIBRARY			x509.lib 
 LANG            SC
 
 /*
--- a/remotemgmt_plat/policy_management_request_api/tsrc/inc/policy_management_request_api.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/policy_management_request_api/tsrc/inc/policy_management_request_api.h	Fri Sep 17 19:59:15 2010 +0530
@@ -169,6 +169,9 @@
 		TInt GetElememtListL( CStifItemParser& aItem );
 		TInt GetElememtL (CStifItemParser& aItem);
 		TInt GetXACMLDescriptionL(CStifItemParser& aItem);
+		TInt AddServerCertL(CStifItemParser& aItem);
+		TInt RemoveServerCertL(CStifItemParser& aItem);
+		
     public:     // Data
         // ?one_line_short_description_of_data
         //?data_declaration;
--- a/remotemgmt_plat/policy_management_request_api/tsrc/src/policy_management_request_apiBlocks.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/policy_management_request_api/tsrc/src/policy_management_request_apiBlocks.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -30,12 +30,13 @@
 #include <f32file.h>
 #include <e32cmn.h>
 
+#include <x509cert.h>
 
 _LIT( KServerID, "TarmBlr");
 //_LIT( KTarmBlrCer, "TarmBlrcer");
 _LIT( KTestFilePath, "E:\\testing\\data\\");
 
-
+const TInt KMaxLabelIdLength = 25;
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -77,6 +78,9 @@
         ENTRY( "GetElememtList", Cpolicy_management_request_api::GetElememtListL ),
         ENTRY( "GetElememt", Cpolicy_management_request_api::GetElememtL ),
         ENTRY( "GetXACMLDescription", Cpolicy_management_request_api::GetXACMLDescriptionL ),
+       
+        ENTRY( "AddServerCert", Cpolicy_management_request_api::AddServerCertL ),
+        ENTRY( "RemoveServerCert", Cpolicy_management_request_api::RemoveServerCertL ),
         //ADD NEW ENTRY HERE
         // [test cases entries] - Do not remove
 
@@ -200,6 +204,71 @@
 	return err;
 }
 
+TInt Cpolicy_management_request_api::AddServerCertL(CStifItemParser& aItem)
+    {
+    //Load X.509 certificate 
+    RFs fs;
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);
+    
+    RFile certFile;
+    User::LeaveIfError(certFile.Open(fs, _L("c:\\dm2.blrtesting.der"), EFileRead));   
+    CleanupClosePushL(certFile);
+    
+    TInt size(0);
+    User::LeaveIfError(certFile.Size(size));   
+    
+    HBufC8* certData = HBufC8::NewLC(size);
+    TPtr8 buf = certData->Des();
+    User::LeaveIfError(certFile.Read(buf,size));       
+    CX509Certificate* cert = CX509Certificate::NewLC(*certData);  
+    //create the empty label to be filled later with certificate name after adding to store. 
+    HBufC *testLabel = HBufC::NewL(KMaxLabelIdLength);
+    testLabel->Des().Zero();
+    
+    //connect to policy engine
+    RPolicyEngine engine;
+    User::LeaveIfError(engine.Connect());
+    
+    RPolicyManagement management;
+    User::LeaveIfError(management.Open(engine));
+    
+    TPtr ptr = testLabel->Des();
+    TInt err = management.AddServerCert(*cert,ptr);  
+        
+    management.Close();
+    engine.Close();
+        
+    
+    CleanupStack::PopAndDestroy(4, &fs); 
+    delete testLabel;
+    
+    return err;
+    }
+
+
+TInt Cpolicy_management_request_api::RemoveServerCertL(CStifItemParser& aItem)
+    {
+    RPolicyEngine engine;
+    User::LeaveIfError(engine.Connect());
+    
+    RPolicyManagement management;
+    User::LeaveIfError(management.Open(engine));
+    
+    //create the empty label 
+    HBufC *testLabel = HBufC::NewL(KMaxLabelIdLength);
+    testLabel->Des().Zero();
+    TInt err = management.RemoveServerCert(*testLabel); 
+       
+    management.Close();
+    engine.Close();
+    
+    delete testLabel;
+    
+    return err;
+    }
+
+
 TInt Cpolicy_management_request_api::CertificateRoleL( CStifItemParser& aItem )
 {
 	RPolicyEngine engine;
--- a/remotemgmt_plat/syncml_client_api/group/bld.inf	Fri Sep 03 22:35:56 2010 +0530
+++ b/remotemgmt_plat/syncml_client_api/group/bld.inf	Fri Sep 17 19:59:15 2010 +0530
@@ -24,24 +24,14 @@
 
 PRJ_EXPORTS
 
-//../inc/SyncMLHistory.h     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLHistory.h)
-//../inc/SyncMLErr.h     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLErr.h)
-//../inc/SyncMLClientDM.h     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLClientDM.h)
-//../inc/SyncMLAlertInfo.h     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLAlertInfo.h)
-//../inc/SyncMLDef.h     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLDef.h)
-//../inc/SyncMLClient.h     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLClient.h)
-//../inc/SyncMLTransportProperties.h     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLTransportProperties.h)
-//../inc/SyncMLObservers.h     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLObservers.h)
-//../inc/SyncMLClientDS.h     MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLClientDS.h)
 
-
-../inc/SyncMLHistory.h			/epoc32/include/SyncMLHistory.h
-../inc/SyncMLErr.h			/epoc32/include/SyncMLErr.h
-../inc/SyncMLClientDM.h		/epoc32/include/SyncMLClientDM.h
-../inc/SyncMLAlertInfo.h		/epoc32/include/SyncMLAlertInfo.h
-../inc/SyncMLDef.h			    /epoc32/include/SyncMLDef.h
-../inc/SyncMLClient.h			/epoc32/include/SyncMLClient.h	
-../inc/SyncMLContactSuiteProgressClient.h			/epoc32/include/SyncMLContactSuiteProgressClient.h	
-../inc/SyncMLTransportProperties.h	/epoc32/include/SyncMLTransportProperties.h
-../inc/SyncMLObservers.h		/epoc32/include/SyncMLObservers.h
-../inc/SyncMLClientDS.h		/epoc32/include/SyncMLClientDS.h
+../inc/SyncMLHistory.h			MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLHistory.h)
+../inc/SyncMLErr.h			MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLErr.h)
+../inc/SyncMLClientDM.h			MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLClientDM.h)
+../inc/SyncMLAlertInfo.h		MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLAlertInfo.h)
+../inc/SyncMLDef.h			MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLDef.h)
+../inc/SyncMLClient.h			MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLClient.h)
+../inc/SyncMLContactSuiteProgressClient.h	MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLContactSuiteProgressClient.h)
+../inc/SyncMLTransportProperties.h	MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLTransportProperties.h)
+../inc/SyncMLObservers.h		MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLObservers.h)
+../inc/SyncMLClientDS.h			MW_LAYER_PLATFORM_EXPORT_PATH(SyncMLClientDS.h)
--- a/remotemgmt_plat/update_package_storage_plugin_api/group/bld.inf	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  File that exports the files belonging to 
-:                Update Package Storage Plug-in API
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-../inc/fotastorage.h     MW_LAYER_PLATFORM_EXPORT_PATH(fotastorage.h)
--- a/remotemgmt_plat/update_package_storage_plugin_api/inc/fotastorage.h	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Handles storing of update pkg
-*
-*/
-
-
-#ifndef __FOTASTORAGE_H_
-#define __FOTASTORAGE_H_
-
-#include <s32strm.h>
-
-
-/*
-* Handles all package storing and space reservation functionality.
-* This class is used by fotaserver and rfs.
-*
-*/
-class CFotaStorage : public CBase
-{
-
-    public:
-
-    enum TFreeSpace
-        {
-        EFitsToReservation,     // fits to space reservation
-        EFitsToFileSystem,      // doesn't fit to reservation,fits to FS
-        EDoesntFitToFileSystem  // doesn't fit to fs
-        };
-
-        // This func is used to reserve storage space for future packages
-        virtual TInt AdjustDummyStorageL() = 0;
-
-        // This function is used to get the filestream pointer for writing the package.
-        virtual TInt OpenUpdatePackageStoreL(const TInt aPkgId,TInt aNewDummySize
-                                            , RWriteStream*& aPkgStore) = 0;
-
-		// This function is used to get the downloaded update package size.
-		virtual	void GetDownloadedUpdatePackageSizeL (const TInt aPkgId, TInt& aSize ) = 0;
-        virtual void UpdatePackageDownloadCompleteL(const TInt aPkgId) = 0;
-
-        // Get update package location. 
-        virtual void GetUpdatePackageLocationL(const TInt aPkgId
-                                                        , TDes8& aPath ) = 0;
-
-        virtual void GetUpdatePackageIdsL(TDes16& aPackageIdList) = 0;
-
-        // does the pkg fit to storage?
-        virtual TFreeSpace IsPackageStoreSizeAvailableL (TInt& aSize) = 0;
-
-        virtual void  DeleteUpdatePackageL ( const TInt aPkgId ) = 0;
-
-    protected:
-
-        
-    public:
-
-        // Bytes written to store, client must update
-        TInt    iBytesWritten;
-
-        TUid    iDtor_ID_Key;
-
-};
-#endif //__FOTASTORAGE_H_
--- a/remotemgmt_plat/update_package_storage_plugin_api/update_package_storage_plugin_api.metaxml	Fri Sep 03 22:35:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-<?xml version="1.0" ?>
-<api id="91d99e55d2c224e86a131074288547a5" dataversion="1.0">
-  <name>Update Package Storage Plug-in API</name>
-  <description>ECOM plug-in API for update package storage implementation</description>
-  <type>c++</type>
-  <subsystem>fotaapplication</subsystem>
-  <libs>
-  </libs>
-  <release category="domain"/>
-  <attributes>
-     <!-- This indicates wether the api provedes separate html documentation -->
-     <!-- or is the additional documentation generated from headers. -->
-     <!-- If you are unsuere then the value is "no" -->
-     <htmldocprovided>yes</htmldocprovided>
-     <adaptation>no</adaptation>
-  </attributes>
-</api>
--- a/syncmlfw/common/http/bld/nsmlhttp.mmp	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/common/http/bld/nsmlhttp.mmp	Fri Sep 17 19:59:15 2010 +0530
@@ -56,7 +56,7 @@
 
 USERINCLUDE  ../../../../inc  // internal header include path
 
-LIBRARY         euser.lib 
+LIBRARY     euser.lib 
 LIBRARY			commdb.lib 
 LIBRARY 		nsmldebug.lib
 LIBRARY			http.lib 
@@ -65,12 +65,12 @@
 LIBRARY			nsmlxml.lib 
 LIBRARY			esock.lib
 LIBRARY			ecom.lib
-LIBRARY		    centralrepository.lib
+LIBRARY		  centralrepository.lib
 LIBRARY			nsmlagentcommon.lib
 LIBRARY			featmgr.lib
 LIBRARY			cmmanager.lib
 LIBRARY			ezlib.lib
 LIBRARY			connmon.lib
-LIBRARY         	connmonext.lib
+LIBRARY     ConnMonExt.lib
 
 SMPSAFE
--- a/syncmlfw/common/obex/obexdmplugin/bld/nsmlobexdmplugin.mmp	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/common/obex/obexdmplugin/bld/nsmlobexdmplugin.mmp	Fri Sep 17 19:59:15 2010 +0530
@@ -77,7 +77,7 @@
 LIBRARY		nsmlobexcommserver.lib
 LIBRARY		ecom.lib			
 LIBRARY		nsmlxml.lib
-LIBRARY		nsmlprivateapi.lib
+LIBRARY		NSmlPrivateAPI.lib
 
 
 
--- a/syncmlfw/common/sosserver_clientapi/src/NSmlClientAPIUtils.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/common/sosserver_clientapi/src/NSmlClientAPIUtils.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -1601,12 +1601,42 @@
 	TInt mimeCount = aStream.ReadInt32L();
 	for ( TInt i = 0; i < mimeCount; ++i )
 		{
-		iMimeTypes.Append( HBufC::NewL( aStream, aStream.ReadInt32L() ) );
+		TRAPD(err, iMimeTypes.AppendL( HBufC::NewL( aStream, aStream.ReadInt32L() ) ));
+		if(err != KErrNone)
+		    {
+		    delete iDisplayName;
+		    iDisplayName = NULL;
+		    User::Leave( err );
+		    }
 		}
 		
 	for ( TInt j = 0; j < mimeCount; ++j )
 		{
-		iMimeVersions.Append( HBufC::NewL( aStream, aStream.ReadInt32L() ) );
+		TRAPD(err, iMimeVersions.AppendL( HBufC::NewL( aStream, aStream.ReadInt32L() ) ));
+		if(err != KErrNone)
+		    {
+		    delete iDisplayName;
+		    iDisplayName = NULL;
+		    //rolling back the previous iMimeTypes append.
+		    TInt total = iMimeTypes.Count();
+		    for(TInt k = 1; k<= mimeCount; k++ )
+		        {
+		        if((total - k) >= 0)
+		            {
+		            iMimeTypes.Remove(total - k);
+		            }
+		        }
+		    
+		    total =  iMimeVersions.Count();
+		    for(TInt l=1; l<j+1; l++)
+		        {
+		        if((total - l) >= 0)
+		            {
+		            iMimeVersions.Remove(total - l);
+		            }
+		        }
+		    User::Leave( err );
+		    }
 		}
 	
 	TInt dataStoreCount = aStream.ReadInt8L();
--- a/syncmlfw/dm/callbackServer/src/nsmldmcallbacksession.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/dm/callbackServer/src/nsmldmcallbacksession.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -682,7 +682,15 @@
 		childUriPtr.Append ( uriPtr );
 		childUriPtr.Append ( KNSmlDmLitSeparator );
 		childUriPtr.Append ( tmpDesc.Left ( segEnds ) );	
-		currentUris.Append ( childUri );
+		TRAPD(err, currentUris.AppendL ( childUri ));
+		if(err != KErrNone)
+		    {
+		    delete childUri;
+		    ret = err;
+		    CleanupStack::PopAndDestroy(3);
+		    aMessage.Complete(ret);
+		    return;
+		    }
 		startPos += segEnds + 1;
 		}
 	TBool aclUpdated(EFalse);
--- a/syncmlfw/dm/hostserver/dmhostserverbase/src/nsmldmhostsession.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/dm/hostserver/dmhostserverbase/src/nsmldmhostsession.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -1277,7 +1277,7 @@
 		CleanupClosePushL ( someResults );
 		for ( TInt i(0); i<okToWrite; i++ )
 			{
-			someResults.Append ( iResultList[i] );			
+			someResults.AppendL ( iResultList[i] );			
 			}
 		NSmlDmCmdArgHandler::PacketResultsL ( writeStream, someResults );
 		CleanupStack::PopAndDestroy();  // someResults
@@ -1292,7 +1292,7 @@
 		
 		RPointerArray<CNSmlDmResultElement> result;
 		CleanupClosePushL ( result );
-		result.Append ( iResultList[0] );			
+		result.AppendL ( iResultList[0] );			
 		NSmlDmCmdArgHandler::PacketResultsL ( writeStream, result );
 
 		largeTotSize = iResultReadStream->Source()->SizeL();
@@ -1335,7 +1335,7 @@
 				
 		RPointerArray<CNSmlDmResultElement> truncResult;
 		CleanupClosePushL ( truncResult );
-		truncResult.Append ( iResultList[0] );			
+		truncResult.AppendL ( iResultList[0] );			
 		NSmlDmCmdArgHandler::PacketResultsL ( writeStream, truncResult );
 		
 		CleanupStack::PopAndDestroy(2);  // truncResult, newBuffer
--- a/syncmlfw/dm/treedbhandler/src/nsmldmdbhandler.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/dm/treedbhandler/src/nsmldmdbhandler.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -884,7 +884,14 @@
 		childUriPtr.Append ( aURI );
 		childUriPtr.Append ( KNSmlDmLitSeparator );
 		childUriPtr.Append ( tmpDesc.Left ( segEnds ) );	
-		currentUris.Append ( childUri );
+		
+		TRAPD(err, currentUris.AppendL ( childUri ));
+		if(err != KErrNone)
+		    {
+		    delete childUri;
+		    User::Leave( err );
+		    }
+		        
 		startPos += segEnds + 1;
 		}
 	
--- a/syncmlfw/ds/agentlog/src/nsmlagentlog.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/ds/agentlog/src/nsmlagentlog.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -1453,7 +1453,12 @@
 
 						case EDataStore:
 							dbCaps = CNSmlDbCaps::NewL();
-							aDbCaps.Append(dbCaps);
+							TRAPD(err, aDbCaps.AppendL(dbCaps));
+							if(err != KErrNone)
+							    {
+							    delete dbCaps;
+								User::Leave( err );								
+							    }
 						break;
 
 						case ESourceRef:
--- a/syncmlfw/ds/dsutils/ProfileUtil/src/NsmlProfileUtil.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/ds/dsutils/ProfileUtil/src/NsmlProfileUtil.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -190,7 +190,7 @@
 	    //SyncType is same for all the contents from UI
 	    iSyncType=static_cast<TSmlSyncType>(contentType->IntValue(EDSAdapterSyncType));
 	    // Add to this object
-	    iContents.Append(contentData);			
+	    iContents.AppendL(contentData);			
 	}
 	
 	// Cleanup
@@ -277,7 +277,7 @@
 	        
 	        data->SetContentEnabled(stream.ReadInt32L()); 	
 	        
-	        iContents.Append(data);
+	        iContents.AppendL(data);
 	    }
 	    
 	    iSyncType=static_cast<TSmlSyncType>(stream.ReadInt32L());
--- a/syncmlfw/ds/syncagent/bld/nsmldsagent.mmp	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/ds/syncagent/bld/nsmldsagent.mmp	Fri Sep 17 19:59:15 2010 +0530
@@ -85,7 +85,7 @@
 LIBRARY			ecom.lib
 //RD_AUTO_RESTART
 LIBRARY 		ConnMon.lib
-LIBRARY        	connmonext.lib
+LIBRARY        	ConnMonExt.lib
 LIBRARY         NsmlProfileUtil.lib
 LIBRARY         syncmlclientapi.lib
 LIBRARY			centralrepository.lib
--- a/syncmlfw/group/syncmlfw_stub.pkg	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/group/syncmlfw_stub.pkg	Fri Sep 17 19:59:15 2010 +0530
@@ -118,8 +118,8 @@
 ""-"z:\sys\bin\wpds.dll"
 ""-"z:\resource\plugin\wpds.r*"
 
-""-"z:\sys\bin\nsmldefaultagendahandler.dll"
-""-"z:\resource\plugin\nsmldefaultagendahandler.r*"
+
+
 ; from dm
 ""-"z:\sys\bin\nsmldmdevdetailadapter.dll"
 ""-"z:\resource\plugin\nsmldmdevdetailadapter.r*"
@@ -176,7 +176,7 @@
 ""-"z:\resource\NSmlTransport.r*"
 ""-"z:\resource\NSmlDSProfileRes.r*"
 ""-"z:\resource\NSmlDSTypesRes.r*"
-""-"z:\resource\nsmldefaultagendahandler_1_2.r*"
+
 
 
 ; Misc files
Binary file syncmlfw/group/syncmlfw_stub.sis has changed
--- a/syncmlfw/rom/NSmlDSSync.iby	Fri Sep 03 22:35:56 2010 +0530
+++ b/syncmlfw/rom/NSmlDSSync.iby	Fri Sep 17 19:59:15 2010 +0530
@@ -30,18 +30,6 @@
 data=ABI_DIR\BUILD_DIR\z\private\100012a5\policy\101F99FD.SPD		private\100012a5\policy\101F99FD.SPD
 data=ABI_DIR\BUILD_DIR\z\private\100012a5\policy\101F99FE.SPD		private\100012a5\policy\101F99FE.SPD
 
-REM SyncML  Data Synchronisation plug-in adapters
-
-REM #ifdef  __SYNCML_DS_CAL // SyncML data synchronization calendar plug-in
-REM ECOM_PLUGIN(nsmlagendadataprovider.dll,nsmlagendadataprovider.rsc)
-REM data=DATAZ_\RESOURCE_FILES_DIR\NSmlAgendaDataStore_1_1_2.rsc		RESOURCE_FILES_DIR\NSmlAgendaDataStore_1_1_2.rsc
-REM #endif // __SYNCML_DS_CAL
-
-REM #ifdef __SYNCML_DS_CON //  SyncML data synchronization contacts plug-in
-REM ECOM_PLUGIN(nsmlcontactsdataprovider.dll,nsmlcontactsdataprovider.rsc)
-REM data=DATAZ_\RESOURCE_FILES_DIR\NSmlContactsDataStoreFormat_1_1_2.rsc	RESOURCE_FILES_DIR\NSmlContactsDataStoreFormat_1_1_2.rsc
-REM data=DATAZ_\RESOURCE_FILES_DIR\NSmlContactsDataStoreFormat_1_2.rsc	RESOURCE_FILES_DIR\NSmlContactsDataStoreFormat_1_2.rsc
-REM #endif // __SYNCML_DS_CON
 
 data=DATAZ_\RESOURCE_FILES_DIR\NSmlDSProfileRes.rsc             RESOURCE_FILES_DIR\NSmlDSProfileRes.rsc
 REM \ds\adapters\dataproviderbase
@@ -93,9 +81,7 @@
 file=ABI_DIR\BUILD_DIR\NsmlProfileUtil.dll			SHARED_LIB_DIR\NsmlProfileUtil.dll
 file=ABI_DIR\BUILD_DIR\nsmlfolderparser.dll		SHARED_LIB_DIR\nsmlfolderparser.dll
 
-REM defaultagendahandler plugin
-ECOM_PLUGIN(nsmldefaultagendahandler.dll,nsmldefaultagendahandler.rsc)
-data=DATAZ_\resource\nsmldefaultagendahandler_1_2.RSC \resource\nsmldefaultagendahandler_1_2.rsc
+
 REM \ds\syncagent
 file=ABI_DIR\BUILD_DIR\nsmldsagent.dll			SHARED_LIB_DIR\nsmldsagent.dll
 
--- a/terminalsecurity/SCP/SCPClient/src/SCPParamObject.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/terminalsecurity/SCP/SCPClient/src/SCPParamObject.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -214,7 +214,7 @@
             iParamValues.Remove( i );
             delete tmpValue;
                 
-            iParamValues.Insert( newValue, i );
+            iParamValues.InsertL( newValue, i );
             isNewParam = EFalse;
             }
         }
@@ -222,8 +222,24 @@
     if ( isNewParam )
         {
         // Create a new value
-        iParamIDs.Append( aParamID );
-        iParamValues.Append( newValue );
+        TInt err = KErrNone;
+        TRAP(err, iParamIDs.AppendL( aParamID ));
+        if(err != KErrNone)
+            {
+            delete newValue;
+            ret = err;
+            }
+        else 
+            {
+            TRAP(err, iParamValues.AppendL( newValue ));
+            if(err != KErrNone)
+                {
+                delete newValue;
+                //Rollback append.
+                iParamIDs.Remove(iParamIDs.Count()-1);
+                ret = err;
+                }
+            }
         }
 
     return ret;
--- a/terminalsecurity/SCP/SCPServer/group/SCPServer.mmp	Fri Sep 03 22:35:56 2010 +0530
+++ b/terminalsecurity/SCP/SCPServer/group/SCPServer.mmp	Fri Sep 17 19:59:15 2010 +0530
@@ -79,7 +79,7 @@
 #endif // SCP_USE_POLICY_ENGINE
 
 #ifdef SCP_SMS_LOCK_AVAILABLE
-LIBRARY    rlocksettings.lib
+LIBRARY    RLockSettings.lib
 #endif // SCP_SMS_LOCK_AVAILABLE
 
 //#ifdef __SAP_DEVICE_LOCK_ENHANCEMENTS
--- a/terminalsecurity/SCP/SCPServer/inc/SCPServer.h	Fri Sep 03 22:35:56 2010 +0530
+++ b/terminalsecurity/SCP/SCPServer/inc/SCPServer.h	Fri Sep 17 19:59:15 2010 +0530
@@ -96,7 +96,10 @@
 const TUint32 KSCPServerSIDTelephone( 0x100058B3 ); // Terminal Control Server
 const TUint32 KSCPServerSIDLog( 0x101f4cd5 ); // Terminal Control Server
 const TUint32 KSCPServerSIDTerminalControl( 0x10207825 ); // Terminal Control Server
-const TUint32 KSCPServerSIDGeneralSettings( 0x100058EC ); // General Settings
+
+//const TUint32 KSCPServerSIDGeneralSettings( 0x100058EC ); // General Settings
+const TUint32 KSCPServerSIDGeneralSettings( 0X20025FD9 ); // General Settings
+
 //const TUint32 KSCPServerSIDSecurityObserver( 0x10000938 ); // Security Observer
 const TUint32 KAknNfySrvUid( 0x10281EF2 ); // Security Notifier
 const TUint32 KSCPServerSIDAutolock( 0x100059B5 ); // Autolock
--- a/terminalsecurity/SCP/SCPServer/src/SCPPluginManager.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/terminalsecurity/SCP/SCPServer/src/SCPPluginManager.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -131,7 +131,7 @@
             }
         else
             {
-            iPlugins.Append( thisPlugin );            
+            iPlugins.AppendL( thisPlugin );            
             thisPlugin->SetEventHandler( iServer->GetEventHandlerL() );
             
             Dprint( (_L("CSCPPluginManager::LoadPluginsL(): Plugin active,\
--- a/terminalsecurity/SCP/SCPServer/src/SCPServer.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/terminalsecurity/SCP/SCPServer/src/SCPServer.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -1461,7 +1461,7 @@
                             }
                             else {
                                 lSpecStrArray.Remove(i);
-                                lSharedStrArray.Append(lPtr);
+                                lSharedStrArray.AppendL(lPtr);
                                 i--;
                                 lCnt--;
                             }
@@ -1547,7 +1547,7 @@
                                                 }
 
                                                 lBuff->Des().Append(lToken);
-                                                lSpecStrArray.Append(lBuff);
+                                                lSpecStrArray.AppendL(lBuff);
                                                 lex.Inc();
                                                 lex.Mark();
                                             }