# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1284494076 -10800 # Node ID 5cc2995847eae24c92c292ab7abbb299ad4fb0a1 # Parent 19bba8228ff0f858d11d06c09b4f3cdc6bbfbe9b Revision: 201033 Kit: 201035 diff -r 19bba8228ff0 -r 5cc2995847ea dcmofw/dcmoserver/group/dcmoserver.mmp --- a/dcmofw/dcmoserver/group/dcmoserver.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/dcmofw/dcmoserver/group/dcmoserver.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -44,24 +44,24 @@ LANGUAGE_IDS END -LIBRARY euser.lib commonengine.lib efsrv.lib +LIBRARY euser.lib CommonEngine.lib efsrv.lib LIBRARY ecom.lib LIBRARY centralrepository.lib LIBRARY aknnotify.lib eiksrv.lib LIBRARY flogger.lib -LIBRARY TerminalControl.lib -LIBRARY nsmlprivateapi.lib -LIBRARY commdb.lib +LIBRARY terminalcontrol.lib +LIBRARY NSmlPrivateAPI.lib +LIBRARY commdb.lib LIBRARY apengine.lib esock.lib #ifdef __TARM_SYMBIAN_CONVERGENCY - LIBRARY dmtreeclient.lib - LIBRARY SmlClient.lib + LIBRARY dmtreeclient.lib + LIBRARY SmlClient.lib #else LIBRARY nsmldmtreedbhandler.lib - LIBRARY syncmlclientapi.lib + LIBRARY syncmlclientapi.lib LIBRARY nsmldmmodule.lib - LIBRARY nsmldmtreedbclient.lib connmon.lib - LIBRARY nsmltransporthandler.lib -LIBRARY nsmltransport.lib cone.lib javaregistryclient.lib avkon.lib eikcore.lib apparc.lib + LIBRARY nsmldmtreedbclient.lib ConnMon.lib + LIBRARY nsmltransporthandler.lib +LIBRARY nsmltransport.lib cone.lib javaregistryclient.lib avkon.lib eikcore.lib apparc.lib #endif // __TARM_SYMBIAN_CONVERGENCY -SMPSAFE \ No newline at end of file +SMPSAFE diff -r 19bba8228ff0 -r 5cc2995847ea devicediagnosticsfw/diagpluginbase/group/diagpluginbase.mmp --- a/devicediagnosticsfw/diagpluginbase/group/diagpluginbase.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/devicediagnosticsfw/diagpluginbase/group/diagpluginbase.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -47,7 +47,7 @@ LIBRARY efsrv.lib LIBRARY bafl.lib LIBRARY cone.lib // CCoeEnv -LIBRARY commonengine.lib +LIBRARY CommonEngine.lib LIBRARY estor.lib // RBufReadStream LIBRARY flogger.lib // logging LIBRARY eikdlg.lib // CEikDialog diff -r 19bba8228ff0 -r 5cc2995847ea fotaapplication/fotaserver/FotaServer/group/fotaserver.mmp --- a/fotaapplication/fotaserver/FotaServer/group/fotaserver.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/fotaapplication/fotaserver/FotaServer/group/fotaserver.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -83,7 +83,7 @@ LIBRARY bafl.lib LIBRARY cone.lib LIBRARY commdb.lib -LIBRARY commonengine.lib +LIBRARY CommonEngine.lib LIBRARY edbms.lib LIBRARY efsrv.lib LIBRARY eikctl.lib @@ -112,11 +112,12 @@ LIBRARY nsmldmtreedbclient.lib LIBRARY akncapserverclient.lib // AknUiServer LIBRARY starterclient.lib -LIBRARY connmon.lib +LIBRARY ConnMon.lib LIBRARY featmgr.lib LIBRARY fmsclient.lib //FMS Client LIBRARY cmmanager.lib //Connection Manager -LIBRARY inetprotutil.lib +LIBRARY inetprotutil.lib +LIBRARY featdiscovery.lib LIBRARY aknnotify.lib // #ifdef _FOTA_DEBUG diff -r 19bba8228ff0 -r 5cc2995847ea fotaapplication/fotaserver/FotaServer/inc/DevEncController.h --- a/fotaapplication/fotaserver/FotaServer/inc/DevEncController.h Wed Sep 01 12:27:42 2010 +0100 +++ b/fotaapplication/fotaserver/FotaServer/inc/DevEncController.h Tue Sep 14 22:54:36 2010 +0300 @@ -52,6 +52,7 @@ void ReportDevEncOpnCompleteL(TInt aResult); TInt GetDEOperation(); + void CheckIfDeviceMemoryBusyL(); private: // Functions diff -r 19bba8228ff0 -r 5cc2995847ea fotaapplication/fotaserver/FotaServer/inc/FotaServer.h --- a/fotaapplication/fotaserver/FotaServer/inc/FotaServer.h Wed Sep 01 12:27:42 2010 +0100 +++ b/fotaapplication/fotaserver/FotaServer/inc/FotaServer.h Tue Sep 14 22:54:36 2010 +0300 @@ -739,6 +739,15 @@ * @return None */ void StartNetworkMonitorL(); + + /** + * Checks whether FOTA needs to decrypt the memory before updating by examing the Feature Flag + * + * @since SF 3 + * @param None + * @return TBool + */ + TBool IsFOTANeedToDecryptL(); private: // Data diff -r 19bba8228ff0 -r 5cc2995847ea fotaapplication/fotaserver/FotaServer/src/DevEncController.cpp --- a/fotaapplication/fotaserver/FotaServer/src/DevEncController.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/fotaapplication/fotaserver/FotaServer/src/DevEncController.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -200,16 +200,8 @@ TInt err (KErrNone); TInt status (KErrNone); - TInt deoperation (EOpIdle); - - RProperty::Get(KDevEncProtectedUid, KDevEncOperationKey, deoperation ); - - if (deoperation != EOpIdle) - { - FLOG(_L("Some disk operation is ongoing. Hence Fota is not possible.")); - User::Leave(KErrNotReady); - } - + CheckIfDeviceMemoryBusyL(); + iEncMemorySession->SetDrive( aDrive); err = iEncMemorySession->Connect(); @@ -525,5 +517,19 @@ return iDevEncOperation; } +void CDevEncController::CheckIfDeviceMemoryBusyL() + { + TInt deoperation (EOpIdle); + + RProperty::Get(KDevEncProtectedUid, KDevEncOperationKey, deoperation ); + + if (deoperation != EOpIdle) + { + FLOG(_L("Some disk operation is ongoing. Hence Fota is not possible.")); + User::Leave(KErrNotReady); + } + + } + // End of file diff -r 19bba8228ff0 -r 5cc2995847ea fotaapplication/fotaserver/FotaServer/src/FotaServer.cpp --- a/fotaapplication/fotaserver/FotaServer/src/FotaServer.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/fotaapplication/fotaserver/FotaServer/src/FotaServer.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -31,6 +31,7 @@ #include #include #include +#include #include "FotaSrvApp.h" #include "FotaServer.h" #include "FotaSrvDebug.h" @@ -2415,6 +2416,14 @@ __LEAVE_IF_ERROR(err); } } + + if(!IsFOTANeedToDecryptL()) + { + iDEController->CheckIfDeviceMemoryBusyL(); + return EFalse; + } + + TRAPD(err, ret = iDEController->NeedToDecryptL(drive)); delete iDEController; iDEController = NULL; @@ -2590,3 +2599,21 @@ return ret; } +// -------------------------------------------------------------------------- +// CFotaServer::IsFOTANeedToDecryptL +// This method returns the device encryption operation. +// +// -------------------------------------------------------------------------- +// +TBool CFotaServer::IsFOTANeedToDecryptL() + { + FLOG(_L("CFotaServer::IsFOTANeedToDecryptL >>")); + + TBool ret(EFalse); + ret = CFeatureDiscovery::IsFeatureSupportedL(TUid::Uid(KFeatureIdFfFotaDecryptMemBeforeUpdate)); + + FLOG(_L("CFotaServer::IsFOTANeedToDecryptL, ret = %d <<"), ret); + return ret; + } + + diff -r 19bba8228ff0 -r 5cc2995847ea fotaapplication/fotaserver/FotaServer/src/fotadownload.cpp --- a/fotaapplication/fotaserver/FotaServer/src/fotadownload.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/fotaapplication/fotaserver/FotaServer/src/fotadownload.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -36,7 +36,7 @@ #include #endif #include -#include //OMA DM UI for reading resource +#include //OMA DM UI for reading resource #include #include #include //for reading san feature diff -r 19bba8228ff0 -r 5cc2995847ea fotaapplication/fotaserver/fmserver/group/fmsserver.mmp --- a/fotaapplication/fotaserver/fmserver/group/fmsserver.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/fotaapplication/fotaserver/fmserver/group/fmsserver.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -42,7 +42,7 @@ MW_LAYER_SYSTEMINCLUDE LIBRARY euser.lib -LIBRARY connmon.lib // for connection monitoring +LIBRARY ConnMon.lib // for connection monitoring LIBRARY sysutil.lib LIBRARY efsrv.lib LIBRARY flogger.lib diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/AuthTypePlugin/Group/Authtypeplugin.mmp --- a/omaprovisioning/provisioning/AuthTypePlugin/Group/Authtypeplugin.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/AuthTypePlugin/Group/Authtypeplugin.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -65,7 +65,7 @@ LIBRARY avkon.lib LIBRARY bafl.lib LIBRARY commdb.lib -LIBRARY commonengine.lib // RConeResourceLoader +LIBRARY CommonEngine.lib // RConeResourceLoader LIBRARY cone.lib LIBRARY ecom.lib LIBRARY efsrv.lib diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/AuthTypePlugin/src/Authtypeplugin.cpp --- a/omaprovisioning/provisioning/AuthTypePlugin/src/Authtypeplugin.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/AuthTypePlugin/src/Authtypeplugin.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -21,7 +21,7 @@ #include #include -#include // GUI Resource +#include // GUI Resource #include #include #include diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/IMAdapter/Group/IMAdapter.mmp --- a/omaprovisioning/provisioning/IMAdapter/Group/IMAdapter.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/IMAdapter/Group/IMAdapter.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -56,7 +56,7 @@ LIBRARY euser.lib LIBRARY provisioningengine.lib LIBRARY wvsapsettingsstore.lib -LIBRARY msgeditorutils.lib +LIBRARY MsgEditorUtils.lib LIBRARY apengine.lib LIBRARY commdb.lib LIBRARY inetprotutil.lib diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/MbxNbrAdapter/Group/MbxNbrAdapter.mmp --- a/omaprovisioning/provisioning/MbxNbrAdapter/Group/MbxNbrAdapter.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/MbxNbrAdapter/Group/MbxNbrAdapter.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -54,7 +54,7 @@ LIBRARY euser.lib LIBRARY provisioningengine.lib -LIBRARY commonengine.lib +LIBRARY CommonEngine.lib LIBRARY vmbx.lib LIBRARY centralrepository.lib diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/ProvisioningBC/Group/ProvisioningBC.mmp --- a/omaprovisioning/provisioning/ProvisioningBC/Group/ProvisioningBC.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/ProvisioningBC/Group/ProvisioningBC.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -60,10 +60,10 @@ LIBRARY bafl.lib LIBRARY eikcore.lib LIBRARY eikcoctl.lib // bordered control -LIBRARY msgeditorutils.lib +LIBRARY MsgEditorUtils.lib LIBRARY cone.lib LIBRARY msgs.lib // Messaging Centre interface -LIBRARY commonengine.lib // StringLoader +LIBRARY CommonEngine.lib // StringLoader LIBRARY richbio.lib LIBRARY provisioningengine.lib LIBRARY avkon.lib diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/ProvisioningBC/Src/CWPBioControl.cpp --- a/omaprovisioning/provisioning/ProvisioningBC/Src/CWPBioControl.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/ProvisioningBC/Src/CWPBioControl.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -361,6 +361,20 @@ TBool preAuthenticated( iMessage->Authenticated() ); // If the message was not authenticated, give a warning AuthenticateL( *iMessage ); + + // Identify the authentication type + TInt type = (entry->Entry()).MtmData2(); + if(type == 1) + { + CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV ); + TInt err = repository->Set(KOMAProvMessageOpen, type); + if(err != KErrNone) + { + FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL Set KOMAProvMessageOpen failed" ) ); + } + CleanupStack::PopAndDestroy(); // repository + } + FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL 3 " ) ); if( !tentry.ReadOnly() && preAuthenticated != iMessage->Authenticated() ) { @@ -375,6 +389,16 @@ FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL 5 " ) ); iEngine->PopulateL(); FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL 6 " ) ); + + //Reset the cenrep so it can used for next message. + CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV ); + TInt err = repository->Set(KOMAProvMessageOpen, 0); + if(err != KErrNone) + { + FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL Set KOMAProvMessageOpen failed" ) ); + } + CleanupStack::PopAndDestroy(); + // Empty messages are not supported if( iEngine->ItemCount() == 0 ) { @@ -396,7 +420,7 @@ { iEngine->SetCurrentContextL( KWPMgrUidNoContext ); } - + CleanupStack::PopAndDestroy(2); // orig16, entry FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL done" ) ); } diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/ProvisioningBC/Src/CWPSaver.cpp --- a/omaprovisioning/provisioning/ProvisioningBC/Src/CWPSaver.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/ProvisioningBC/Src/CWPSaver.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -19,7 +19,7 @@ // INCLUDE FILES #include #include -#include +#include #include #include #include diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/ProvisioningCx/group/ProvisioningCx.mmp --- a/omaprovisioning/provisioning/ProvisioningCx/group/ProvisioningCx.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/ProvisioningCx/group/ProvisioningCx.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -65,7 +65,7 @@ LIBRARY avkon.lib LIBRARY provisioningengine.lib LIBRARY bafl.lib -LIBRARY commonengine.lib +LIBRARY CommonEngine.lib LIBRARY featmgr.lib LIBRARY hlplch.lib LIBRARY apengine.lib diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/ProvisioningEngine/Group/ProvisioningEngine.mmp --- a/omaprovisioning/provisioning/ProvisioningEngine/Group/ProvisioningEngine.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/ProvisioningEngine/Group/ProvisioningEngine.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -70,7 +70,7 @@ LIBRARY etelmm.lib LIBRARY inetprotutil.lib LIBRARY sysutil.lib -LIBRARY commonengine.lib +LIBRARY CommonEngine.lib LIBRARY edbms.lib LIBRARY centralrepository.lib LIBRARY cmmanager.lib diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/ProvisioningEngine/Inc/ProvisioningInternalCRKeys.h --- a/omaprovisioning/provisioning/ProvisioningEngine/Inc/ProvisioningInternalCRKeys.h Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/ProvisioningEngine/Inc/ProvisioningInternalCRKeys.h Tue Sep 14 22:54:36 2010 +0300 @@ -35,6 +35,10 @@ const TUint32 KOMAProvAuthenticationLVFlag = 0x00000001; const TUint32 KOMAProvAuthFailMsgHandling = 0x00000002; const TUint32 KOMAProvOriginatorContent = 0x00000003; +const TUint32 KOMAProvIsUserPin = 0x00000004; +const TUint32 KOMAProvCriticalAdapterSettingCount = 0x00000005; +const TUint32 KOMAProvMessageOpen = 0x00000006; +const TUint32 KOMAProvAllowCriticalAdapterSetting = 0x00000007; #endif // PROVISIONINGINTERNALCRKEYS_H diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/ProvisioningEngine/Src/CWPPushMessage.cpp --- a/omaprovisioning/provisioning/ProvisioningEngine/Src/CWPPushMessage.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/ProvisioningEngine/Src/CWPPushMessage.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -1047,6 +1047,14 @@ { if( aPIN.Length() == 0 ) { + TInt aSetAuthValue = 1; + CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV ); + TInt err = repository->Set(KOMAProvIsUserPin, aSetAuthValue); + if(err != KErrNone) + { + FLOG( _L( "[Provisioning] CWPPushMessage::AuthenticateL: set KOMAProvIsUserPin Failed" ) ); + } + CleanupStack::PopAndDestroy(); // repository result = KWPAuthResultPinRequired; FLOG( _L( "[Provisioning] CWPPushMessage::AuthenticateL: KWPAuthResultPinRequired" ) ); } @@ -1089,6 +1097,14 @@ { if( aPIN.Length() == 0 ) { + TInt aSetAuthValue = 1; + CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV ); + TInt err = repository->Set(KOMAProvIsUserPin, aSetAuthValue); + if(err != KErrNone) + { + FLOG( _L( "[Provisioning] CWPPushMessage::AuthenticateL: set KOMAProvIsUserPin Failed" ) ); + } + CleanupStack::PopAndDestroy(); // repository result = KWPAuthResultPinRequired; FLOG( _L( "[Provisioning] CWPPushMessage::AuthenticateL: KWPAuthResultPinRequired" ) ); } @@ -1112,6 +1128,14 @@ } else { + TInt aSetAuthValue = 1; + CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV ); + TInt err = repository->Set(KOMAProvIsUserPin, aSetAuthValue); + if(err != KErrNone) + { + FLOG( _L( "[Provisioning] CWPPushMessage::AuthenticateL: set KOMAProvIsUserPin Failed" ) ); + } + CleanupStack::PopAndDestroy(); // repository result = KWPAuthResultNoAuthentication; FLOG( _L( "[Provisioning] CWPPushMessage::AuthenticateL: KWPAuthResultNoAuthentication" ) ); } diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/ProvisioningHandler/Src/CWPMessage.cpp --- a/omaprovisioning/provisioning/ProvisioningHandler/Src/CWPMessage.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/ProvisioningHandler/Src/CWPMessage.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -154,7 +154,25 @@ } FLOG( _L( "CWPMessage::ProcessL: Creating engine" ) ); - + + + TInt value( 0 ); + CRepository* rep = CRepository::NewLC( KOMAProvAuthenticationLV ); + + TInt error = rep->Set(KOMAProvIsUserPin, value); + if(error != KErrNone) + { + FLOG( _L( "CWPMessage::ProcessL: set KOMAProvIsUserPin Failed" ) ); + } + + error = rep->Set(KOMAProvCriticalAdapterSettingCount, value); + if(error != KErrNone) + { + FLOG( _L( "CWPMessage::ProcessL: set KOMAProvCriticalAdapterSettingCount Failed" ) ); + } + + CleanupStack::PopAndDestroy(); // rep + // Read the message into the engine CWPEngine* engine = CWPEngine::NewLC(); // on CS @@ -162,6 +180,7 @@ engine->ImportDocumentL( iMessage->Body() ); FLOG( _L( "CWPMessage::ProcessL: Populating adapters" ) ); + engine->PopulateL(); FTRACE(RDebug::Print(_L(" WPMessage::ProcessL: Number of settings: (%d)"), engine->ItemCount())); @@ -180,13 +199,41 @@ FLOG( _L( "CWPMessage::ProcessL: Bootstrapping" ) ); CWPBootstrap* bootstrap = CWPBootstrap::NewL( iPhone->SubscriberId() ); CleanupStack::PushL( bootstrap ); - + CWPBootstrap::TBootstrapResult result( bootstrap->BootstrapL( *iMessage, *engine, KNullDesC ) ); CleanupStack::PopAndDestroy(); // bootstrap FTRACE(RDebug::Print(_L(" WPMessage::ProcessL: Bootstrap result: (%d)"), result)); // See UI specs figure 1 + + TInt adapterCount( 0 ); + TInt userPin(0); + TInt allowCriticalSetting(0); + + CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV ); + TInt getErr = repository->Get( KOMAProvCriticalAdapterSettingCount, adapterCount); + if(getErr != KErrNone) + { + FLOG( _L( "CWPMessage::ProcessL: set KOMAProvCriticalAdapterSettingCount Failed" ) ); + } + + getErr = repository->Get( KOMAProvIsUserPin, userPin ); + if(getErr != KErrNone) + { + FLOG( _L( "CWPMessage::PrepareEntryLC: set KOMAProvIsUserPin Failed" ) ); + } + + getErr = repository->Get( KOMAProvAllowCriticalAdapterSetting, allowCriticalSetting ); + if(getErr != KErrNone) + { + FLOG( _L( "CWPMessage::PrepareEntryLC: set KOMAProvIsUserPin Failed" ) ); + } + + CleanupStack::PopAndDestroy(); // repository + + + TBool haveSettings( engine->ItemCount() > 0 ); switch( result ) { @@ -194,9 +241,24 @@ { FLOG( _L( "CWPMessage::ProcessL: Bootstrapping ENoBootstrap" ) ); // If there's no bootstrap, just save the message - if( haveSettings ) + + if( haveSettings) { - StoreMsgL(); + if(allowCriticalSetting) + { + if(!userPin) + { + StoreMsgL(); + } + else if(adapterCount != engine->ItemCount()) + { + StoreMsgL(); + } + } + else + { + StoreMsgL(); + } } else { @@ -208,36 +270,75 @@ case CWPBootstrap::ENotAuthenticated: { FLOG( _L( "CWPMessage::ProcessL: Bootstrapping ENotAuthenticated" ) ); - if( haveSettings ) - { - StoreMsgL(); - } + + if(haveSettings) + { + if(allowCriticalSetting) + { + if(adapterCount != engine->ItemCount()) + { + StoreMsgL(); + } + } + else + { + StoreMsgL(); + } + } else { - // Message is ignored and an information SMs is put to Inbox. //Information SMs can be Class0, based on operator requirement. - TInt auth_value; - CRepository * rep = 0; - TRAPD( err, rep = CRepository::NewL( KCRUidOMAProvisioningLV )); - if(err == KErrNone) - { - rep->Get( KOMAProvAuthFailMsgHandling, auth_value ); - delete rep; + if(allowCriticalSetting) + { + if(adapterCount != engine->ItemCount()) + { + TInt auth_value; + CRepository * rep = 0; + TRAPD( err, rep = CRepository::NewL( KCRUidOMAProvisioningLV )); + if(err == KErrNone) + { + rep->Get( KOMAProvAuthFailMsgHandling, auth_value ); + delete rep; - if(auth_value == 1) - StoreMsgclass0L(R_TEXT_AUTHENTICATION_FAILED); + if(auth_value == 1) + StoreMsgclass0L(R_TEXT_AUTHENTICATION_FAILED); + else + StoreMsgL(R_TEXT_AUTHENTICATION_FAILED); + + User::Leave( KErrAccessDenied ); + } + else + { + StoreMsgL(R_TEXT_AUTHENTICATION_FAILED); + User::Leave( KErrAccessDenied ); + } + } + } else - StoreMsgL(R_TEXT_AUTHENTICATION_FAILED); + { + TInt auth_value; + CRepository * rep = 0; + TRAPD( err, rep = CRepository::NewL( KCRUidOMAProvisioningLV )); + if(err == KErrNone) + { + rep->Get( KOMAProvAuthFailMsgHandling, auth_value ); + delete rep; - User::Leave( KErrAccessDenied ); + if(auth_value == 1) + StoreMsgclass0L(R_TEXT_AUTHENTICATION_FAILED); + else + StoreMsgL(R_TEXT_AUTHENTICATION_FAILED); + + User::Leave( KErrAccessDenied ); + } + else + { + StoreMsgL(R_TEXT_AUTHENTICATION_FAILED); + User::Leave( KErrAccessDenied ); + } } - else - { - StoreMsgL(R_TEXT_AUTHENTICATION_FAILED); - User::Leave( KErrAccessDenied ); - } - } + } break; } @@ -246,12 +347,26 @@ FLOG( _L( "CWPMessage::ProcessL: Bootstrapping EPinRequired" ) ); // If PIN is required, defer authentication to ProvisioningBC - if( haveSettings ) + if(haveSettings) { - StoreMsgL(); + if(allowCriticalSetting) + { + if(!userPin) + { + StoreMsgL(); + } + else if(adapterCount != engine->ItemCount()) + { + StoreMsgL(); + } + } + else + { + StoreMsgL(); + } } else - { + { User::Leave( KErrCorrupt ); } break; @@ -571,6 +686,22 @@ aEntry.iError = KErrNone; // iMtmData1 is been used/reserved for count, please don't use for any other purpose. aEntry.SetMtmData1(3); + aEntry.SetMtmData2(0); + + TInt userPin = 0; + CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV ); + TInt err = repository->Get( KOMAProvIsUserPin, userPin ); + if(err != KErrNone) + { + FLOG( _L( "CWPMessage::PrepareEntryLC: set KOMAProvIsUserPin Failed" ) ); + } + CleanupStack::PopAndDestroy(); // repository + + if(userPin == 1) + { + aEntry.SetMtmData2(1); + } + FLOG( _L( "CWPMessage::PrepareEntryLC create an invisible blank entry done" ) ); // Look up the details HBufC* details = NULL; diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/ProvisioningSC/Src/CWPBioMsgHandler.cpp --- a/omaprovisioning/provisioning/ProvisioningSC/Src/CWPBioMsgHandler.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/ProvisioningSC/Src/CWPBioMsgHandler.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include #include diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/ProvisioningSC/Src/CWPProvisioningSC.cpp --- a/omaprovisioning/provisioning/ProvisioningSC/Src/CWPProvisioningSC.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/ProvisioningSC/Src/CWPProvisioningSC.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include "MWPPhone.h" #include "CWPPushMessage.h" diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/WAPAdapter/Group/WPWAPAdapter.mmp --- a/omaprovisioning/provisioning/WAPAdapter/Group/WPWAPAdapter.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/WAPAdapter/Group/WPWAPAdapter.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -64,7 +64,7 @@ LIBRARY msgs.lib LIBRARY apengine.lib LIBRARY commdb.lib -LIBRARY commonengine.lib +LIBRARY CommonEngine.lib LIBRARY favouritesengine.lib LIBRARY centralrepository.lib diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/accesspointadapter/Src/CWPAPAdapter.cpp --- a/omaprovisioning/provisioning/accesspointadapter/Src/CWPAPAdapter.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/accesspointadapter/Src/CWPAPAdapter.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -23,7 +23,7 @@ #include #include -#include +#include #include // Feature manager #include "WPAPUtil.h" #include "CWPAPAccesspointItem.h" diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/accesspointadapter/Src/CWPAPNapdef.cpp --- a/omaprovisioning/provisioning/accesspointadapter/Src/CWPAPNapdef.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/accesspointadapter/Src/CWPAPNapdef.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -23,7 +23,7 @@ #include "CWPAPNapdef.h" #include #include -#include +#include #include #include #include "CWPAPAccesspointItem.h" diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/accesspointadapter/group/WPAPAdapter.mmp --- a/omaprovisioning/provisioning/accesspointadapter/group/WPAPAdapter.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/accesspointadapter/group/WPAPAdapter.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -61,13 +61,14 @@ SYSTEMINCLUDE /epoc32/include/ecom LIBRARY euser.lib -LIBRARY ProvisioningEngine.lib +LIBRARY provisioningengine.lib LIBRARY apengine.lib LIBRARY commdb.lib -LIBRARY FeatMgr.lib +LIBRARY featmgr.lib LIBRARY ecom.lib LIBRARY centralrepository.lib LIBRARY cmmanager.lib +LIBRARY policyengine.lib DEBUGLIBRARY flogger.lib // Only in debug builds // End of File diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/alwaysonadapter/Group/alwaysonadapter.mmp --- a/omaprovisioning/provisioning/alwaysonadapter/Group/alwaysonadapter.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/omaprovisioning/provisioning/alwaysonadapter/Group/alwaysonadapter.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -46,7 +46,7 @@ LIBRARY euser.lib LIBRARY provisioningengine.lib -LIBRARY commonengine.lib +LIBRARY CommonEngine.lib LIBRARY centralrepository.lib DEBUGLIBRARY flogger.lib diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/conf/s60provisioning.confml Binary file omaprovisioning/provisioning/conf/s60provisioning.confml has changed diff -r 19bba8228ff0 -r 5cc2995847ea omaprovisioning/provisioning/conf/s60provisioning_101F87AA.crml Binary file omaprovisioning/provisioning/conf/s60provisioning_101F87AA.crml has changed diff -r 19bba8228ff0 -r 5cc2995847ea policymanagement/dmutilserver/group/DMUtilServer.mmp --- a/policymanagement/dmutilserver/group/DMUtilServer.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/policymanagement/dmutilserver/group/DMUtilServer.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -75,7 +75,7 @@ // S60 LIBRARY rfs.lib LIBRARY sysutil.lib -LIBRARY commonengine.lib +LIBRARY CommonEngine.lib // TARM LIBRARY policyengine.lib LIBRARY centreptool.lib diff -r 19bba8228ff0 -r 5cc2995847ea policymanagement/policyengine/group/PolicyEngineUI.mmp --- a/policymanagement/policyengine/group/PolicyEngineUI.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/policymanagement/policyengine/group/PolicyEngineUI.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -56,7 +56,7 @@ LIBRARY bafl.lib LIBRARY avkon.lib LIBRARY cone.lib -LIBRARY commonengine.lib +LIBRARY CommonEngine.lib LIBRARY eikcoctl.lib LIBRARY eikdlg.lib LIBRARY eikctl.lib diff -r 19bba8228ff0 -r 5cc2995847ea remotemgmt_plat/lawmo_plugin_api/inc/lawmointerface.h --- a/remotemgmt_plat/lawmo_plugin_api/inc/lawmointerface.h Wed Sep 01 12:27:42 2010 +0100 +++ b/remotemgmt_plat/lawmo_plugin_api/inc/lawmointerface.h Tue Sep 14 22:54:36 2010 +0300 @@ -65,7 +65,7 @@ }; -#include "LAWMOInterface.inl" +#include "lawmointerface.inl" #endif // _MLAWMOPLUGININTERFACE_H__ diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/alertqueue/bld/NSmlAlertQueue.mmp --- a/syncmlfw/common/alertqueue/bld/NSmlAlertQueue.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/alertqueue/bld/NSmlAlertQueue.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -65,7 +65,7 @@ LIBRARY euser.lib estor.lib bafl.lib efsrv.lib nsmlwbxml.lib LIBRARY nsmlhistorylog.lib -LIBRARY nsmldssettings.lib +LIBRARY NSmlDSSettings.lib LIBRARY nsmldmsettings.lib LIBRARY nsmldshostclient.lib LIBRARY nsmlagentcommon.lib diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/alertqueue/src/NSmlDSAlertParser11.cpp --- a/syncmlfw/common/alertqueue/src/NSmlDSAlertParser11.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/alertqueue/src/NSmlDSAlertParser11.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/alertqueue/src/NSmlDSAlertParser12.cpp --- a/syncmlfw/common/alertqueue/src/NSmlDSAlertParser12.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/alertqueue/src/NSmlDSAlertParser12.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/obex/obexdmplugin/bld/nsmlobexdmplugin.mmp --- a/syncmlfw/common/obex/obexdmplugin/bld/nsmlobexdmplugin.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/obex/obexdmplugin/bld/nsmlobexdmplugin.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -77,7 +77,7 @@ LIBRARY nsmlobexcommserver.lib LIBRARY ecom.lib LIBRARY nsmlxml.lib -LIBRARY nsmlprivateapi.lib +LIBRARY NSmlPrivateAPI.lib diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/sosserver/bld/nsmlsosserver.mmp --- a/syncmlfw/common/sosserver/bld/nsmlsosserver.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/sosserver/bld/nsmlsosserver.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -74,7 +74,7 @@ SOURCE NSmlJobObject.cpp LIBRARY euser.lib estor.lib ecom.lib bafl.lib efsrv.lib nsmldebug.lib edbms.lib -LIBRARY nsmldssettings.lib +LIBRARY NSmlDSSettings.lib LIBRARY nsmldmsettings.lib LIBRARY nsmltransport.lib LIBRARY nsmltransporthandler.lib diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/sosserver_clientapi/bld/NSmlClientAPI.mmp --- a/syncmlfw/common/sosserver_clientapi/bld/NSmlClientAPI.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/sosserver_clientapi/bld/NSmlClientAPI.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -68,7 +68,7 @@ SYSTEMINCLUDE /epoc32/include/http SYSTEMINCLUDE /epoc32/include/libc -LIBRARY euser.lib estor.lib FeatMgr.lib bafl.lib +LIBRARY euser.lib estor.lib featmgr.lib bafl.lib LIBRARY eikcore.lib efsrv.lib ecom.lib LIBRARY nsmltransporthandler.lib LIBRARY nsmldebug.lib diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/sosserver_transporthandler/src/NSmlTransportHandler.cpp --- a/syncmlfw/common/sosserver_transporthandler/src/NSmlTransportHandler.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/sosserver_transporthandler/src/NSmlTransportHandler.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include "NSmlTransportHandler.h" diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/syncagent/bld/NSmlAgentCommon.mmp --- a/syncmlfw/common/syncagent/bld/NSmlAgentCommon.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/syncagent/bld/NSmlAgentCommon.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -79,7 +79,7 @@ LIBRARY inetprotutil.lib #ifdef ARMCC -LIBRARY ECOM.LIB +LIBRARY ecom.lib #endif //RD_AUTO_RESTART LIBRARY commdb.lib diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/transport/bld/nsmltransport.mmp --- a/syncmlfw/common/transport/bld/nsmltransport.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/transport/bld/nsmltransport.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -47,17 +47,17 @@ USERINCLUDE ../inc ../../http/inc ../../inc ../../wbxml/inc ../../wbxml/inc/syncml ../../syncagent/inc ../../debug/inc USERINCLUDE ../../obex/obexcommserver/inc ../../obex/obexserverbinding/inc ../../obex/obexclient/inc -LIBRARY euser.lib +LIBRARY euser.lib LIBRARY bluetooth.lib LIBRARY nsmldebug.lib -LIBRARY commonengine.lib // 1.2 CHANGES: Offline mode -LIBRARY commdb.lib -LIBRARY apengine.lib -LIBRARY CENTRALREPOSITORY.LIB -LIBRARY FeatMgr.lib +LIBRARY CommonEngine.lib // 1.2 CHANGES: Offline mode +LIBRARY commdb.lib +LIBRARY apengine.lib +LIBRARY centralrepository.lib +LIBRARY featmgr.lib #ifdef ARMCC -LIBRARY ECOM.LIB +LIBRARY ecom.lib #endif SMPSAFE diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/wbxml/bld/nsmlwbxml.mmp --- a/syncmlfw/common/wbxml/bld/nsmlwbxml.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/wbxml/bld/nsmlwbxml.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -70,7 +70,7 @@ LIBRARY euser.lib estor.lib #ifdef ARMCC -LIBRARY ECOM.LIB +LIBRARY ecom.lib #endif SMPSAFE diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/common/xml/bld/nsmlxml.mmp --- a/syncmlfw/common/xml/bld/nsmlxml.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/common/xml/bld/nsmlxml.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -64,7 +64,7 @@ LIBRARY nsmlwbxml.lib euser.lib estor.lib #ifdef ARMCC -LIBRARY ECOM.LIB +LIBRARY ecom.lib #endif SMPSAFE diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/dm/provisioningadapter/bld/NSmlDmProvisioningAdapter.mmp --- a/syncmlfw/dm/provisioningadapter/bld/NSmlDmProvisioningAdapter.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/dm/provisioningadapter/bld/NSmlDmProvisioningAdapter.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -50,7 +50,7 @@ LIBRARY euser.lib commdb.lib charconv.lib bafl.lib efsrv.lib apengine.lib -LIBRARY nsmldebug.lib syncmlclientapi.lib nsmlprivateapi.lib +LIBRARY nsmldebug.lib syncmlclientapi.lib NSmlPrivateAPI.lib LIBRARY provisioningengine.lib featmgr.lib centralrepository.lib #ifdef ARMCC diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/dm/provisioningadapter/inc/ProvisioningInternalCRKeys.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/syncmlfw/dm/provisioningadapter/inc/ProvisioningInternalCRKeys.h Tue Sep 14 22:54:36 2010 +0300 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2004 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: Provisioning internal Central Repository keys +* +*/ + + +#ifndef PROVISIONINGINTERNALCRKEYS_H +#define PROVISIONINGINTERNALCRKEYS_H + +#include + +/****************************************************************************** +* Provisioning Variation API +* Keys under this category are used in defining Provisioning variation. +*/ +const TUid KCRUidOMAProvisioningLV = {0x101F87AA}; +const TUid KOMAProvAuthenticationLV = {0x101F87AA}; + +/** +* Provisioning Local Variation Flags. Values are defined in ProvisioningVariant.hrh. +*/ +const TUint32 KOMAProvisioningLVFlag = 0x00000000; +const TUint32 KOMAProvAuthenticationLVFlag = 0x00000001; +const TUint32 KOMAProvAuthFailMsgHandling = 0x00000002; +const TUint32 KOMAProvOriginatorContent = 0x00000003; +const TUint32 KOMAProvIsUserPin = 0x00000004; +const TUint32 KOMAProvCriticalAdapterSettingCount = 0x00000005; +const TUint32 KOMAProvMessageOpen = 0x00000006; +const TUint32 KOMAProvAllowCriticalAdapterSetting = 0x00000007; +#endif // PROVISIONINGINTERNALCRKEYS_H + +// End of file diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp --- a/syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -23,7 +23,7 @@ #include // CommsDB columname defs #include #include -#include +#include #include #include #include @@ -38,8 +38,9 @@ #include #include "NSmlDmProvisioningAdapter.h" #include "NSmlTransportHandler.h" - #include +#include "ProvisioningInternalCRKeys.h" +#include // ============================ MEMBER FUNCTIONS =============================== @@ -132,8 +133,24 @@ // ----------------------------------------------------------------------------- TInt CNSmlDmProvisioningAdapter::ItemCount() const { - return iProfiles.Count(); - } + + CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV ); + TInt adapterCount( 0 ); + TInt getErr = repository->Get( KOMAProvCriticalAdapterSettingCount, adapterCount); + if(getErr != KErrNone) + { + _DBG_FILE("CWPMessage::ProcessL: get KOMAProvCriticalAdapterSettingCount Failed" ); + } + TInt criticalAdapterSettingCount = adapterCount + iProfiles.Count(); + + TInt setErr = repository->Set(KOMAProvCriticalAdapterSettingCount, criticalAdapterSettingCount); + if(setErr != KErrNone) + { + _DBG_FILE("CNSmlDmProvisioningAdapter::ItemCount(): set KOMAProvCriticalAdapterSettingCount failed"); + } + CleanupStack::PopAndDestroy(); // repository + return iProfiles.Count(); + } // ----------------------------------------------------------------------------- // CNSmlDmProvisioningAdapter::SummaryTitle @@ -488,7 +505,39 @@ if(iState!=CNSmlDmProvisioningAdapter::EStateNull) { - aCharacteristic.AcceptL( *this ); + + TInt authType( 0 ); + TInt allowCriticalSetting( 0 ); + CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV ); + + TInt error = repository->Get( KOMAProvMessageOpen, authType ); + if(error !=KErrNone) + { + _DBG_FILE("CNSmlDmProvisioningAdapter::VisitL Get KOMAProvMessageOpen Failed"); + } + + error = repository->Get( KOMAProvAllowCriticalAdapterSetting, allowCriticalSetting ); + if(error !=KErrNone) + { + _DBG_FILE("CNSmlDmProvisioningAdapter::VisitL Get KOMAProvMessageOpen Failed"); + } + CleanupStack::PopAndDestroy(); // repository + + if(allowCriticalSetting) + { + if(authType != 1) + { + aCharacteristic.AcceptL( *this ); + } + else + { + iState = CNSmlDmProvisioningAdapter::EStateNull; + } + } + else + { + aCharacteristic.AcceptL( *this ); + } } _DBG_FILE("CNSmlDmProvisioningAdapter::VisitL(CWPCharacteristic): end"); } diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/dm/settings/src/NSmlDMSettings.cpp --- a/syncmlfw/dm/settings/src/NSmlDMSettings.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/dm/settings/src/NSmlDMSettings.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -16,7 +16,7 @@ */ -#include +#include #include #include diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/dm/wappushalert/bld/nsmldmwappushalert.mmp --- a/syncmlfw/dm/wappushalert/bld/nsmldmwappushalert.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/dm/wappushalert/bld/nsmldmwappushalert.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -50,5 +50,5 @@ LIBRARY ecom.lib LIBRARY wappushutils.lib LIBRARY nsmldebug.lib -LIBRARy nsmlprivateapi.lib +LIBRARy NSmlPrivateAPI.lib SMPSAFE diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/ds/adapters/dataproviderbase/bld/nsmldataproviderbase.mmp --- a/syncmlfw/ds/adapters/dataproviderbase/bld/nsmldataproviderbase.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/ds/adapters/dataproviderbase/bld/nsmldataproviderbase.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -43,5 +43,5 @@ SYSTEMINCLUDE /epoc32/include/syncml SYSTEMINCLUDE /epoc32/include/ecom -LIBRARY euser.lib estor.lib ECom.lib +LIBRARY euser.lib estor.lib ecom.lib diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/ds/alerthandler/bld/nsmldsalert.mmp --- a/syncmlfw/ds/alerthandler/bld/nsmldsalert.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/ds/alerthandler/bld/nsmldsalert.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -49,11 +49,11 @@ LIBRARY euser.lib LIBRARY estor.lib LIBRARY nsmldebug.lib -LIBRARY NSmlPrivateApi.lib -LIBRARY nsmldssettings.lib +LIBRARY NSmlPrivateAPI.lib +LIBRARY NSmlDSSettings.lib LIBRARY nsmlwbxml.lib LIBRARY nsmlagentcommon.lib -LIBRARY ecom.lib +LIBRARY ecom.lib diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/ds/dsutils/ProfileUtil/bld/NsmlProfileUtil.mmp --- a/syncmlfw/ds/dsutils/ProfileUtil/bld/NsmlProfileUtil.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/ds/dsutils/ProfileUtil/bld/NsmlProfileUtil.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -38,7 +38,7 @@ LIBRARY euser.lib LIBRARY estor.lib -LIBRARY nsmldssettings.lib +LIBRARY NSmlDSSettings.lib LIBRARY centralrepository.lib LIBRARY nsmldebug.lib diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/ds/hostserver/dshostserverbase/bld/nsmldshostserver.mmp --- a/syncmlfw/ds/hostserver/dshostserverbase/bld/nsmldshostserver.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/ds/hostserver/dshostserverbase/bld/nsmldshostserver.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -59,6 +59,6 @@ LIBRARY nsmlchangefinder.lib syncmldatafilter.lib #ifdef ARMCC -LIBRARY ECOM.LIB +LIBRARY ecom.lib #endif diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/ds/netmon/bld/NetMon.mmp --- a/syncmlfw/ds/netmon/bld/NetMon.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/ds/netmon/bld/NetMon.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -40,7 +40,7 @@ LIBRARY flogger.lib LIBRARY syncmlclientapi.lib LIBRARY nsmltransporthandler.lib -LIBRARY nsmlprofileutil.lib +LIBRARY NsmlProfileUtil.lib LIBRARY nsmldebug.lib LIBRARY centralrepository.lib LIBRARY efsrv.lib diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/ds/provisioningadapter/bld/NSmlDsProvisioningAdapter.mmp --- a/syncmlfw/ds/provisioningadapter/bld/NSmlDsProvisioningAdapter.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/ds/provisioningadapter/bld/NSmlDsProvisioningAdapter.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -49,8 +49,8 @@ MW_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE /epoc32/include/ecom -LIBRARY euser.lib ECom.lib commdb.lib charconv.lib apengine.lib +LIBRARY euser.lib ecom.lib commdb.lib charconv.lib apengine.lib LIBRARY nsmldbcaps.lib bafl.lib efsrv.lib nsmldebug.lib syncmlclientapi.lib -LIBRARY ProvisioningEngine.lib centralrepository.lib +LIBRARY provisioningengine.lib centralrepository.lib SMPSAFE diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/ds/provisioningadapter/src/NSmlDsProvisioningAdapter.cpp --- a/syncmlfw/ds/provisioningadapter/src/NSmlDsProvisioningAdapter.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/ds/provisioningadapter/src/NSmlDsProvisioningAdapter.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include #include diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/ds/settings/src/NSmlDSSettings.cpp --- a/syncmlfw/ds/settings/src/NSmlDSSettings.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/ds/settings/src/NSmlDSSettings.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -16,7 +16,7 @@ */ -#include +#include #include #include diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/ds/syncagent/bld/nsmldsagent.mmp --- a/syncmlfw/ds/syncagent/bld/nsmldsagent.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/ds/syncagent/bld/nsmldsagent.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -78,7 +78,7 @@ LIBRARY nsmlagentlog.lib LIBRARY nsmldbcaps.lib LIBRARY nsmlchangefinder.lib -LIBRARY nsmldssettings.lib +LIBRARY NSmlDSSettings.lib LIBRARY nsmlfilter.lib LIBRARY nsmldshostclient.lib LIBRARY nsmlhistorylog.lib diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/syncmlnotifier/group/SyncMLNotifier.mmp --- a/syncmlfw/syncmlnotifier/group/SyncMLNotifier.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/syncmlnotifier/group/SyncMLNotifier.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -57,7 +57,7 @@ LIBRARY euser.lib cone.lib // Symbian OS framework libraries LIBRARY avkon.lib // UI library LIBRARY bafl.lib // Basic Application Framework Library -LIBRARY commonengine.lib // Series 60 common components library +LIBRARY CommonEngine.lib // Series 60 common components library LIBRARY charconv.lib // Character conversion library LIBRARY eikcoctl.lib eiksrv.lib // Eikon libraries LIBRARY eikdlg.lib // Eikon libraries diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/syncmlnotifier/src/SyncMLAppLaunchNotifier.cpp --- a/syncmlfw/syncmlnotifier/src/SyncMLAppLaunchNotifier.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/syncmlnotifier/src/SyncMLAppLaunchNotifier.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -30,7 +30,7 @@ #include #include #include -#include // Own resources +#include // Own resources #include "SyncMLAppLaunchNotifier.h" // Class declaration #include "SyncMLTimedMessageQuery.h" #include "SyncMLTimedQueryDialog.h" diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/syncmlnotifier/src/SyncMLDlgNotifier.cpp --- a/syncmlfw/syncmlnotifier/src/SyncMLDlgNotifier.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/syncmlnotifier/src/SyncMLDlgNotifier.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -31,7 +31,7 @@ #include #include #include -#include // Own resources +#include // Own resources #include "SyncMLDlgNotifier.h" // Class definition #include "SyncMLTimedMessageQuery.h" #include "SyncMLAppLaunchNotifier.h" diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/syncmlnotifier/src/SyncMLFwUpdNotifier.cpp --- a/syncmlfw/syncmlnotifier/src/SyncMLFwUpdNotifier.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/syncmlfw/syncmlnotifier/src/SyncMLFwUpdNotifier.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -31,7 +31,7 @@ #include #include #include -#include // Own resources +#include // Own resources #include #include diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPClient/data/SCPNotifier.rss --- a/terminalsecurity/SCP/SCPClient/data/SCPNotifier.rss Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPClient/data/SCPNotifier.rss Tue Sep 14 22:54:36 2010 +0300 @@ -114,6 +114,16 @@ { buf = qtn_device_locked_remotely; } + +RESOURCE TBUF r_code_mismatch_discreet_popup_heading + { + buf = qtn_code_mismatch_discreet_popup_heading; + } + +RESOURCE TBUF r_code_mismatch_discreet_popup_text + { + buf = qtn_code_mismatch_discreet_popup_text; + } RESOURCE DIALOG r_dialog_warning { diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPClient/group/SCPClient.mmp --- a/terminalsecurity/SCP/SCPClient/group/SCPClient.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPClient/group/SCPClient.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -59,15 +59,14 @@ LIBRARY aknnotify.lib LIBRARY eikdlg.lib LIBRARY ws32.lib -LIBRARY commonengine.lib +LIBRARY CommonEngine.lib LIBRARY bafl.lib LIBRARY flogger.lib LIBRARY featmgr.lib LIBRARY centralrepository.lib // CenRep LIBRARY aknnotify.lib LIBRARY estor.lib -LIBRARY apgrfx.lib - +LIBRARY apgrfx.lib SMPSAFE // End of file diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPClient/loc/SCPNotifier.loc --- a/terminalsecurity/SCP/SCPClient/loc/SCPNotifier.loc Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPClient/loc/SCPNotifier.loc Tue Sep 14 22:54:36 2010 +0300 @@ -44,5 +44,13 @@ //d: The text informing user that phone is locked by an Operator server //l: popup_query_data_window #define qtn_device_locked_remotely "Locked by %U" +//d: This popup heading string is to alert the user that he has entered a wrong lock code. +//l: popup_query_data_window +//r: 5.2 +#define qtn_code_mismatch_discreet_popup_heading "Wrong code" +//d: This string would inform the user to try entering the lock code again. +//l: popup_query_data_window +//r: 5.2 +#define qtn_code_mismatch_discreet_popup_text "please try again" // End of File diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPClient/src/SCPClient.cpp --- a/terminalsecurity/SCP/SCPClient/src/SCPClient.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPClient/src/SCPClient.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -32,7 +32,7 @@ #include "SCPQueryDialog.h" #include "SCPParamObject.h" -#include +#include #include "SCP_IDs.h" #include @@ -40,7 +40,7 @@ //#ifdef __SAP_DEVICE_LOCK_ENHANCEMENTS #include #include -#include +#include #include #include #include diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPClient/src/SCPQueryDialog.cpp --- a/terminalsecurity/SCP/SCPClient/src/SCPQueryDialog.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPClient/src/SCPQueryDialog.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -22,11 +22,11 @@ #include #include #include -#include +#include // Include the SecUi definitions #include #include "SCPDebug.h" -#include +#include // For Central Repository #include #include @@ -35,6 +35,7 @@ #include "SCPCodePrivateCRKeys.h" #include #include +#include /*#ifdef _DEBUG #define __SCP_DEBUG @@ -282,13 +283,14 @@ Dprint((_L("CSCPQueryDialog::PreLayoutDynInitL(): EPSCTsyCallStateNone %d"), var)); // If the call is made during device startup have the priority as normal - if (iECSSupport) - { + if (iECSSupport) { + switch(var) { default: case EPSCTsyCallStateNone: Dprint( (_L("CSCPQueryDialog::PreLayoutDynInitL(): Started Maximized..."))); iEikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront + 1); + AknGlobalPopupPriorityController :: SetPopupPriorityL(*this, 1); iPrioritySet = ETrue; break; case EPSCTsyCallStateAlerting: @@ -309,35 +311,28 @@ } } } + + Dprint( (_L("CSCPQueryDialog::PreLayoutDynInitL(): Changing Window Priority") )); + DrawableWindow()->SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront); + ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront); } - - // this must be done always to keep the reference count in synch - // this does not have any effect if autoforwarding has not been set true (normal application.) - iEikonEnv->BringForwards(ETrue, ECoeWinPriorityAlwaysAtFront+1); + else { + AknGlobalPopupPriorityController :: SetPopupPriorityL(*this, 0); + DrawableWindow()->SetOrdinalPosition(0, ECoeWinPriorityNormal); + ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(0, ECoeWinPriorityNormal); + } - /// -- Change Window Priority for dialog and CBA - if (iECSSupport) - { - Dprint( (_L("CSCPQueryDialog::PreLayoutDynInitL(): Changing Window Priority") )); - DrawableWindow()->SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront); - ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront); - } - else - { - DrawableWindow()->SetOrdinalPosition(0,ECoeWinPriorityNormal + 1); // - ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(0,ECoeWinPriorityNormal + 1); - } + // this must be done always to keep the reference count in synch + // this does not have any effect if autoforwarding has not been set true (normal application.) + iEikonEnv->BringForwards(ETrue, ECoeWinPriorityAlwaysAtFront+1); - Dprint( (_L("CSCPQueryDialog::PreLayoutDynInitL(): Key sounds") )); - // Key sounds - - static_cast(iEikonEnv->EikAppUi())->KeySounds()-> - PushContextL(R_AVKON_DEFAULT_SKEY_LIST); - - static_cast(iEikonEnv->EikAppUi())->KeySounds()->BringToForeground(); - static_cast(iEikonEnv->EikAppUi())->KeySounds()->LockContext(); - - iFront = ETrue; + Dprint( (_L("CSCPQueryDialog::PreLayoutDynInitL(): Key sounds") )); + // Key sounds + static_cast(iEikonEnv->EikAppUi())->KeySounds()->PushContextL(R_AVKON_DEFAULT_SKEY_LIST); + static_cast(iEikonEnv->EikAppUi())->KeySounds()->BringToForeground(); + static_cast(iEikonEnv->EikAppUi())->KeySounds()->LockContext(); + iFront = ETrue; + TInt currentLawmoState(0); Dprint( (_L("CSCPQueryDialog::lawmo cenrep") )); CRepository* crep = CRepository::NewLC( KCRUidDeviceManagementInternalKeys ); @@ -853,6 +848,7 @@ TryExitL(EAknSoftkeyCancel); } else { + AknGlobalPopupPriorityController :: SetPopupPriorityL(*this, 1); iEikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront + 1); iPrioritySet = ETrue; } diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPHistoryPlugin/src/SCPHistoryPlugin.cpp --- a/terminalsecurity/SCP/SCPHistoryPlugin/src/SCPHistoryPlugin.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPHistoryPlugin/src/SCPHistoryPlugin.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -23,7 +23,7 @@ #include #include "SCPHistoryPlugin.h" -#include +#include #include "SCP_IDs.h" diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPHistoryPlugin/src/SCPSpecificStringsPlugin.cpp --- a/terminalsecurity/SCP/SCPHistoryPlugin/src/SCPSpecificStringsPlugin.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPHistoryPlugin/src/SCPSpecificStringsPlugin.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -23,7 +23,7 @@ #include #include "SCPSpecificStringsPlugin.h" -#include +#include #include "SCP_IDs.h" #include diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPPatternPlugin/src/SCPPatternPlugin.cpp --- a/terminalsecurity/SCP/SCPPatternPlugin/src/SCPPatternPlugin.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPPatternPlugin/src/SCPPatternPlugin.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -24,7 +24,7 @@ #include #include "SCPPatternPlugin.h" -#include +#include #include "SCP_IDs.h" diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPServer/group/SCPServer.mmp --- a/terminalsecurity/SCP/SCPServer/group/SCPServer.mmp Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPServer/group/SCPServer.mmp Tue Sep 14 22:54:36 2010 +0300 @@ -80,7 +80,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 @@ -96,6 +96,7 @@ LIBRARY featmgr.lib LIBRARY estor.lib LIBRARY charconv.lib +LIBRARY policyengine.lib SMPSAFE diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPServer/inc/SCPSession.h --- a/terminalsecurity/SCP/SCPServer/inc/SCPSession.h Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPServer/inc/SCPSession.h Tue Sep 14 22:54:36 2010 +0300 @@ -26,6 +26,7 @@ #include "SCPServerInterface.h" #include "SCPTimer.h" +#include #include // FORWARD DECLARATIONS @@ -278,6 +279,10 @@ * @return none */ void NotifyChangeL( TInt aParamID, const TDesC8 aParamVal, TUint32 aCallerID ); + + // Check whether the SID is present in the TARM db + + TInt CheckTerminalControl3rdPartySecureIDL(TSecureId aId); private: // Data // Possible states for iLockCommandState @@ -325,6 +330,9 @@ /* The SID of the app that set the above two (iALParamID, iALParamValue) fields */ TUint32 iALParamCallerID; + + RPolicyEngine iPE; + RPolicyRequest iPR; }; #endif // SCPSESSION_H diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPServer/src/SCPSession.cpp --- a/terminalsecurity/SCP/SCPServer/src/SCPSession.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPServer/src/SCPSession.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -50,6 +50,8 @@ #include #include #include + +#include // ================= MEMBER FUNCTIONS ======================= // C++ default constructor can NOT contain any code, that @@ -69,6 +71,8 @@ // Symbian 2nd phase constructor can leave. void CSCPSession::ConstructL() { + User::LeaveIfError( iPE.Connect() ); + User::LeaveIfError( iPR.Open( iPE ) ); iServer.SessionOpened(); } @@ -113,7 +117,8 @@ if(iALParamValue) { delete iALParamValue; } - + iPR.Close(); + iPE.Close(); Dprint( (_L("<-- CSCPSession::~CSCPSession()")) ); } @@ -851,7 +856,9 @@ } TSecureId id = aMessage.SecureId(); - + TBool hasAllFilesCap = aMessage.HasCapability(ECapabilityAllFiles); + TBool hasDiskAdminCap = aMessage.HasCapability(ECapabilityDiskAdmin); + switch(id.iId) { case KSCPServerSIDAutolock: case KAknNfySrvUid: @@ -860,10 +867,23 @@ case KSCPServerSIDTerminalControl: case KSCPServerSIDTelephone: case KSCPServerSIDLog: + { + Dprint( (_L("[CSCPSession]-> fixed sid's") )); break; + } default: { + TInt retVal = CheckTerminalControl3rdPartySecureIDL(id); + Dprint(_L("[CSCPSession]->CheckTerminalControl3rdPartySecureIDL retval %d"), retVal); + if(((retVal==KErrNone)&&(hasDiskAdminCap))||(hasAllFilesCap)) + { + Dprint( (_L("[CSCPSession]-> sid is 3rd party or has AllFiles") )); + break; + } + else + { Dprint( (_L("[CSCPSession]-> ERROR: Permission denied") )); - User::Leave( KErrPermissionDenied ); + User::Leave( KErrPermissionDenied ); + } } }; @@ -1680,3 +1700,36 @@ Dprint(_L("[CSCPSession]->INFO: Notification to all the StakeHolders complete...")); CleanupStack :: PopAndDestroy(); //lChangeArray } +// ------------------------------------------------------------------------------------- +// CTcTrustedSession::CheckTerminalControl3rdPartySecureIDL +// ------------------------------------------------------------------------------------- +TInt CSCPSession::CheckTerminalControl3rdPartySecureIDL(TSecureId aId) + { + Dprint(_L("TerminalControl: [CSCPSession]CheckTerminalControl3rdPartySecureIDL")); + TRequestContext context; + TResponse response; + TUid secureId = TUid::Uid(aId.iId); + context.AddSubjectAttributeL( + PolicyEngineXACML::KSubjectId, secureId + ); + context.AddResourceAttributeL( + PolicyEngineXACML::KResourceId, + PolicyEngineXACML::KThirdPartySecureIds, + PolicyEngineXACML::KStringDataType + ); + User::LeaveIfError( iPR.MakeRequest( context, response ) ); + TResponseValue resp = response.GetResponseValue(); + Dprint(_L("[CSCPSession]->CheckTerminalControl3rdPartySecureIDL Policy check returned %d"), (TInt)resp); + switch( resp ) + { + case EResponsePermit: + return KErrNone; + case EResponseDeny: + case EResponseIndeterminate: + case EResponseNotApplicable: + default: + User::Leave( KErrAccessDenied ); + } + + return KErrAccessDenied; + } diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPTimestampPlugin/src/SCPTimestampPlugin.cpp --- a/terminalsecurity/SCP/SCPTimestampPlugin/src/SCPTimestampPlugin.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPTimestampPlugin/src/SCPTimestampPlugin.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include "SCP_IDs.h" #include #include diff -r 19bba8228ff0 -r 5cc2995847ea terminalsecurity/SCP/SCPTimestampPlugin/src/SCPUserInf.cpp --- a/terminalsecurity/SCP/SCPTimestampPlugin/src/SCPUserInf.cpp Wed Sep 01 12:27:42 2010 +0100 +++ b/terminalsecurity/SCP/SCPTimestampPlugin/src/SCPUserInf.cpp Tue Sep 14 22:54:36 2010 +0300 @@ -16,7 +16,7 @@ */ #include "SCPUserInf.h" -#include +#include #include #include