telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmsecuritytsywithdispatcher.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmsecuritytsywithdispatcher.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmsecuritytsywithdispatcher.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,275 +1,275 @@
-// Copyright (c) 2008-2009 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:
-//
-
-#ifdef USING_CTSY_DISPATCHER
-
-/**
- * This file contains additional function definitions for the CMmSecurityTsy class
- * in CTSY for use when the CTSY is used with the CTSY Dispatcher. 
- */
-
-//INCLUDES
-#include "cmmsecuritytsy.h"
-#include "cmmphonetsy.h"
-#include "cmmtsyreqhandlestore.h"
-#include "cmmphoneextinterface.h"
-#include "CMmCustomSecurityTsy.h"
-
-// ---------------------------------------------------------------------------
-// CMmSecurityTsy::VerifySecurityCodeL
-// This method sends a security code requiring verification to 
-// the phone. If code is required for lock setting, it sends it to the
-// extension and orders re-execution of SetLockSetting function. 
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TInt CMmSecurityTsy::VerifySecurityCodeL(
-    const TTsyReqHandle aTsyReqHandle, 
-    const TDataPackage& aPackage )
-    {
-
-    RMobilePhone::TMobilePhoneSecurityCode* type = 
-        reinterpret_cast<RMobilePhone::TMobilePhoneSecurityCode*>
-            ( aPackage.Ptr1() );
-    RMobilePhone::TCodeAndUnblockCode* codes = 
-        reinterpret_cast<RMobilePhone::TCodeAndUnblockCode*>
-            ( aPackage.Ptr2() );
-
-    // Get request handle to check whether server is busy with previous 
-    // request
-    TTsyReqHandle reqHandle = iMmPhoneTsy->iTsyReqHandleStore->
-        GetTsyReqHandle( CMmPhoneTsy::EMultimodePhoneVerifySecurityCode );
-    
-    if ( 0 < reqHandle )
-        {
-        //The request is already in processing because of previous request
-        //Complete request with status value informing the client about 
-        //the situation.
-        iMmPhoneTsy->ReqCompleted( aTsyReqHandle, KErrServerBusy );
-        }
-    else
-        {
-
-        TInt ret( KErrArgument );
-        
-        //check that the code is available
-        if ( 0 != codes->iCode.Length() )
-            {
-            if ( RMobilePhone::ESecurityCodePin1 == *type )
-                {
-TFLOGSTRING("TSY: CMmSecurityTsy::VerifySecurityCodeL - PIN VERIFY REQUESTED");
-				iLastPinRequested = EPin1Requested;
-				}
-			if ( RMobilePhone::ESecurityCodePin2 == *type )
-				{
-TFLOGSTRING("TSY: CMmSecurityTsy::VerifySecurityCodeL - PIN2 VERIFY REQUESTED");
-				iLastPinRequested = EPin2Requested;
-                }
-            //This is to prevent unnecessary PIN1 request after PUK code 
-            //request. Corrected at the same time with error TKEN-5WFJ7Y
-            if ( ( ( RMobilePhone::ESecurityCodePuk1 == *type ) ||
-                   ( RMobilePhone::ESecurityCodePuk2 == *type ) ) &&  
-                   ( 0 < codes->iUnblockCode.Length() ) )
-                {
-TFLOGSTRING("TSY: CMmSecurityTsy::VerifySecurityCodeL - PUK VERIFY REQUESTED");
-                iPukCodeVerify = ETrue;
-                }
-            //This is to prevent unnecessary PIN1 request after phone password
-            //request (PYRA-5UBCLC)
-            if ( RMobilePhone::ESecurityCodePhonePassword == *type )
-                {
-TFLOGSTRING("TSY: CMmSecurityTsy::VerifySecurityCodeL - PHONE PASSWORD VERIFY REQUESTED");
-                iPhonePasswordVerify = ETrue;
-                }
-            iMmPhoneTsy->iMmPhoneExtInterface->DeliverCode( *codes );
-
-            // CheckSecurityCode needs to set the lock as well, so pass the
-            // code for lock setting
-            if ( iMmPhoneTsy->iMmCustomTsy )
-                {
-                iMmPhoneTsy->iMmCustomTsy->DeliverCodeL( *codes ); 
-                }
-
-            ret = iMmPhoneTsy->iMmPhoneExtInterface->
-                VerifySecurityCodeL( aPackage );
-
-            if ( KErrNone == ret )
-                {
-                iMmPhoneTsy->iReqHandleType = 
-                    CMmPhoneTsy::EMultimodePhoneVerifySecurityCode;
-                }
-            else
-                {
-                // Complete verify with error
-                iMmPhoneTsy->ReqCompleted( aTsyReqHandle, ret );
-
-                // If FDN request is on-going, complete is also with error
-                reqHandle = iMmPhoneTsy->iTsyReqHandleStore->
-                    GetTsyReqHandle( 
-                        CMmPhoneTsy::EMultimodePhoneSetFdnSetting );
-                if ( reqHandle != 
-                     CMmPhoneTsy::EMultimodePhoneReqHandleUnknown )
-                    {
-                    iMmPhoneTsy->CompleteSetFdnSettingL( ret );
-                    }
-                reqHandle = iMmPhoneTsy->iTsyReqHandleStore->
-                    GetTsyReqHandle( 
-                        CMmPhoneTsy::EMultimodePhoneSetLockSetting );
-                        
-                if ( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != 
-                      reqHandle && EActiveCodeToUpinAskUpin == 
-                                      iActiveCodeToUpinState )
-                    {
-                    //Verifying UPIN failed
-                    CompleteSetLockSetting( ret, 
-                        RMobilePhone::EStatusLockUnknown,
-                            RMobilePhone::ELockSetUnknown );
-                    }
-               }
-            }
-        else
-            {       
-            iMmPhoneTsy->ReqCompleted( aTsyReqHandle, KErrArgument );    
-            }
-
-        } // end check request handle
-
-    return KErrNone;
-    }
-    
-// ---------------------------------------------------------------------------
-// CMmSecurityTsy::CompleteVerifySecurityCodeL
-// This method completes an outstanding asynchronous 
-// VerifySecurityCode request
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CMmSecurityTsy::CompleteVerifySecurityCodeL(
-        TInt aErrorCode ) 
-    {
-TFLOGSTRING2("TSY: CMmSecurityTsy::CompleteVerifySecurityCode - Error:%d", aErrorCode);
-
-    TTsyReqHandle reqHandle = iMmPhoneTsy->iTsyReqHandleStore->
-        ResetTsyReqHandle( CMmPhoneTsy::EMultimodePhoneVerifySecurityCode );
-
-    if ( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != reqHandle )
-        {
-        // Complete the request
-        iMmPhoneTsy->ReqCompleted( reqHandle, aErrorCode );
-
-        // This needs to be done for PIN code verification when user has 
-        // dual line SIM and user has changed the line. If PIN code 
-        // verification fails, we need to request PIN code again.
-
-        // NOTE! This MUST NOT happen in bootup when PIN code is verified
-        // and NOT when PIN code is changed to ON/OFF from settings.
-
-        // DO NOT complete if SetLockSetting is called -> PIN ON/OFF change 
-        // from general settings.
-
-        // Not completed if PUK code verify or Phonepassword verify
-        TTsyReqHandle phoneSetLockSettingHandle = 
-                iMmPhoneTsy->iTsyReqHandleStore->GetTsyReqHandle( 
-                CMmPhoneTsy::EMultimodePhoneSetLockSetting );
-
-        // DO NOT complete if booting up 
-        if ( ( iMmPhoneTsy->iBootState.iSecReady ) &&
-             ( iLastPinRequested != EPinUnknown ) && 
-             ( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown ==
-                     phoneSetLockSettingHandle ) &&
-             ( KErrNone != aErrorCode ) &&
-             ( !iPukCodeVerify ) &&
-             ( !iPhonePasswordVerify ) )
-            {
-			// IF PIN1 REQUESTED LAST
-			if ( iLastPinRequested == EPin1Requested )
-				{
-TFLOGSTRING("TSY: CMmSecurityTsy::CompleteVerifySecurityCodeL - PIN VERIFICATION NEEDED");
-				CompleteNotifySecurityEventL( RMobilePhone::EPin1Required,
-						KErrNone );
-				iLastPinRequested = EPinUnknown;
-				}
-			// IF PIN2 REQUESTED LAST
-			if (iLastPinRequested == EPin2Requested)
-				{
-TFLOGSTRING("TSY: CMmSecurityTsy::CompleteVerifySecurityCodeL - PIN2");
-				iLastPinRequested = EPinUnknown;
-				}
-            }
-        else if ( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != 
-                  phoneSetLockSettingHandle && EActiveCodeToUpinAskUpin == 
-                                                      iActiveCodeToUpinState )
-            {
-TFLOGSTRING("TSY: CMmSecurityTsy::CompleteVerifySecurityCodeL - iActiveCodeToUpinState = EActiveCodeToUpinAskPin");
-            if ( KErrNone == aErrorCode )
-                {
-                iActiveCodeToUpinState = EActiveCodeToUpinAskPin;
-                CompleteNotifySecurityEventL( 
-                    RMobilePhone::EPin1Required, KErrNone );
-                }
-            else
-                {
-                iActiveCodeToUpinState = EActiveCodeToUpinIdle;
-                CompleteSetLockSetting( KErrAccessDenied, 
-                    RMobilePhone::EStatusLockUnknown,
-                    RMobilePhone::ELockSetUnknown );
-                }
-            }
-        //Set iPukCodeVerify to EFalse
-        iPukCodeVerify = EFalse;
-
-        //Set iPhonePasswordVerify to EFalse
-        iPhonePasswordVerify = EFalse;
-
-        // FDN HANDLING
-        reqHandle = iMmPhoneTsy->iTsyReqHandleStore->GetTsyReqHandle( 
-            CMmPhoneTsy::EMultimodePhoneSetFdnSetting );
-
-        if ( reqHandle != CMmPhoneTsy::EMultimodePhoneReqHandleUnknown )
-            {
-            if ( KErrNone == aErrorCode )
-                {
-                aErrorCode = iMmPhoneTsy->iMmPhoneExtInterface->
-                    SetFdnSetting( iMmPhoneTsy->iRetFdnSetting );
-                }
-            else
-                {
-                iMmPhoneTsy->CompleteSetFdnSettingL( aErrorCode );
-                }
-            }
-        
-        if ( phoneSetLockSettingHandle != CMmPhoneTsy::EMultimodePhoneReqHandleUnknown )
-            if ( KErrNone == aErrorCode )
-                {
-                CMmDataPackage dataPackage;
-                //add into the package the stored lock and setting
-                dataPackage.PackData( &iLockSettingPhoneLock, &iLockSetting );
-                aErrorCode = iMmPhoneTsy->iMmPhoneExtInterface->
-                    SetLockSettingL( &dataPackage );
-                }
-            else
-                {
-                CompleteSetLockSetting( aErrorCode, RMobilePhone::EStatusLockUnknown, RMobilePhone::ELockSetUnknown );
-                }        	        
-
-        // Reset just used code, empty for next round.
-        RMobilePhone::TCodeAndUnblockCode codes;
-        _LIT( KNullCharacter, "\0" );
-        codes.iCode.Copy( KNullCharacter );
-        iMmPhoneTsy->iMmPhoneExtInterface->DeliverCode( codes );
-        }
-    }
-    
-#endif //USING_CTSY_DISPATCHER
+// Copyright (c) 2008-2009 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:
+//
+
+#ifdef USING_CTSY_DISPATCHER
+
+/**
+ * This file contains additional function definitions for the CMmSecurityTsy class
+ * in CTSY for use when the CTSY is used with the CTSY Dispatcher. 
+ */
+
+//INCLUDES
+#include "cmmsecuritytsy.h"
+#include "cmmphonetsy.h"
+#include "cmmtsyreqhandlestore.h"
+#include "cmmphoneextinterface.h"
+#include "CMmCustomSecurityTsy.h"
+
+// ---------------------------------------------------------------------------
+// CMmSecurityTsy::VerifySecurityCodeL
+// This method sends a security code requiring verification to 
+// the phone. If code is required for lock setting, it sends it to the
+// extension and orders re-execution of SetLockSetting function. 
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt CMmSecurityTsy::VerifySecurityCodeL(
+    const TTsyReqHandle aTsyReqHandle, 
+    const TDataPackage& aPackage )
+    {
+
+    RMobilePhone::TMobilePhoneSecurityCode* type = 
+        reinterpret_cast<RMobilePhone::TMobilePhoneSecurityCode*>
+            ( aPackage.Ptr1() );
+    RMobilePhone::TCodeAndUnblockCode* codes = 
+        reinterpret_cast<RMobilePhone::TCodeAndUnblockCode*>
+            ( aPackage.Ptr2() );
+
+    // Get request handle to check whether server is busy with previous 
+    // request
+    TTsyReqHandle reqHandle = iMmPhoneTsy->iTsyReqHandleStore->
+        GetTsyReqHandle( CMmPhoneTsy::EMultimodePhoneVerifySecurityCode );
+    
+    if ( 0 < reqHandle )
+        {
+        //The request is already in processing because of previous request
+        //Complete request with status value informing the client about 
+        //the situation.
+        iMmPhoneTsy->ReqCompleted( aTsyReqHandle, KErrServerBusy );
+        }
+    else
+        {
+
+        TInt ret( KErrArgument );
+        
+        //check that the code is available
+        if ( 0 != codes->iCode.Length() )
+            {
+            if ( RMobilePhone::ESecurityCodePin1 == *type )
+                {
+TFLOGSTRING("TSY: CMmSecurityTsy::VerifySecurityCodeL - PIN VERIFY REQUESTED");
+				iLastPinRequested = EPin1Requested;
+				}
+			if ( RMobilePhone::ESecurityCodePin2 == *type )
+				{
+TFLOGSTRING("TSY: CMmSecurityTsy::VerifySecurityCodeL - PIN2 VERIFY REQUESTED");
+				iLastPinRequested = EPin2Requested;
+                }
+            //This is to prevent unnecessary PIN1 request after PUK code 
+            //request. Corrected at the same time with error TKEN-5WFJ7Y
+            if ( ( ( RMobilePhone::ESecurityCodePuk1 == *type ) ||
+                   ( RMobilePhone::ESecurityCodePuk2 == *type ) ) &&  
+                   ( 0 < codes->iUnblockCode.Length() ) )
+                {
+TFLOGSTRING("TSY: CMmSecurityTsy::VerifySecurityCodeL - PUK VERIFY REQUESTED");
+                iPukCodeVerify = ETrue;
+                }
+            //This is to prevent unnecessary PIN1 request after phone password
+            //request (PYRA-5UBCLC)
+            if ( RMobilePhone::ESecurityCodePhonePassword == *type )
+                {
+TFLOGSTRING("TSY: CMmSecurityTsy::VerifySecurityCodeL - PHONE PASSWORD VERIFY REQUESTED");
+                iPhonePasswordVerify = ETrue;
+                }
+            iMmPhoneTsy->iMmPhoneExtInterface->DeliverCode( *codes );
+
+            // CheckSecurityCode needs to set the lock as well, so pass the
+            // code for lock setting
+            if ( iMmPhoneTsy->iMmCustomTsy )
+                {
+                iMmPhoneTsy->iMmCustomTsy->DeliverCodeL( *codes ); 
+                }
+
+            ret = iMmPhoneTsy->iMmPhoneExtInterface->
+                VerifySecurityCodeL( aPackage );
+
+            if ( KErrNone == ret )
+                {
+                iMmPhoneTsy->iReqHandleType = 
+                    CMmPhoneTsy::EMultimodePhoneVerifySecurityCode;
+                }
+            else
+                {
+                // Complete verify with error
+                iMmPhoneTsy->ReqCompleted( aTsyReqHandle, ret );
+
+                // If FDN request is on-going, complete is also with error
+                reqHandle = iMmPhoneTsy->iTsyReqHandleStore->
+                    GetTsyReqHandle( 
+                        CMmPhoneTsy::EMultimodePhoneSetFdnSetting );
+                if ( reqHandle != 
+                     CMmPhoneTsy::EMultimodePhoneReqHandleUnknown )
+                    {
+                    iMmPhoneTsy->CompleteSetFdnSettingL( ret );
+                    }
+                reqHandle = iMmPhoneTsy->iTsyReqHandleStore->
+                    GetTsyReqHandle( 
+                        CMmPhoneTsy::EMultimodePhoneSetLockSetting );
+                        
+                if ( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != 
+                      reqHandle && EActiveCodeToUpinAskUpin == 
+                                      iActiveCodeToUpinState )
+                    {
+                    //Verifying UPIN failed
+                    CompleteSetLockSetting( ret, 
+                        RMobilePhone::EStatusLockUnknown,
+                            RMobilePhone::ELockSetUnknown );
+                    }
+               }
+            }
+        else
+            {       
+            iMmPhoneTsy->ReqCompleted( aTsyReqHandle, KErrArgument );    
+            }
+
+        } // end check request handle
+
+    return KErrNone;
+    }
+    
+// ---------------------------------------------------------------------------
+// CMmSecurityTsy::CompleteVerifySecurityCodeL
+// This method completes an outstanding asynchronous 
+// VerifySecurityCode request
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CMmSecurityTsy::CompleteVerifySecurityCodeL(
+        TInt aErrorCode ) 
+    {
+TFLOGSTRING2("TSY: CMmSecurityTsy::CompleteVerifySecurityCode - Error:%d", aErrorCode);
+
+    TTsyReqHandle reqHandle = iMmPhoneTsy->iTsyReqHandleStore->
+        ResetTsyReqHandle( CMmPhoneTsy::EMultimodePhoneVerifySecurityCode );
+
+    if ( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != reqHandle )
+        {
+        // Complete the request
+        iMmPhoneTsy->ReqCompleted( reqHandle, aErrorCode );
+
+        // This needs to be done for PIN code verification when user has 
+        // dual line SIM and user has changed the line. If PIN code 
+        // verification fails, we need to request PIN code again.
+
+        // NOTE! This MUST NOT happen in bootup when PIN code is verified
+        // and NOT when PIN code is changed to ON/OFF from settings.
+
+        // DO NOT complete if SetLockSetting is called -> PIN ON/OFF change 
+        // from general settings.
+
+        // Not completed if PUK code verify or Phonepassword verify
+        TTsyReqHandle phoneSetLockSettingHandle = 
+                iMmPhoneTsy->iTsyReqHandleStore->GetTsyReqHandle( 
+                CMmPhoneTsy::EMultimodePhoneSetLockSetting );
+
+        // DO NOT complete if booting up 
+        if ( ( iMmPhoneTsy->iBootState.iSecReady ) &&
+             ( iLastPinRequested != EPinUnknown ) && 
+             ( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown ==
+                     phoneSetLockSettingHandle ) &&
+             ( KErrNone != aErrorCode ) &&
+             ( !iPukCodeVerify ) &&
+             ( !iPhonePasswordVerify ) )
+            {
+			// IF PIN1 REQUESTED LAST
+			if ( iLastPinRequested == EPin1Requested )
+				{
+TFLOGSTRING("TSY: CMmSecurityTsy::CompleteVerifySecurityCodeL - PIN VERIFICATION NEEDED");
+				CompleteNotifySecurityEventL( RMobilePhone::EPin1Required,
+						KErrNone );
+				iLastPinRequested = EPinUnknown;
+				}
+			// IF PIN2 REQUESTED LAST
+			if (iLastPinRequested == EPin2Requested)
+				{
+TFLOGSTRING("TSY: CMmSecurityTsy::CompleteVerifySecurityCodeL - PIN2");
+				iLastPinRequested = EPinUnknown;
+				}
+            }
+        else if ( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != 
+                  phoneSetLockSettingHandle && EActiveCodeToUpinAskUpin == 
+                                                      iActiveCodeToUpinState )
+            {
+TFLOGSTRING("TSY: CMmSecurityTsy::CompleteVerifySecurityCodeL - iActiveCodeToUpinState = EActiveCodeToUpinAskPin");
+            if ( KErrNone == aErrorCode )
+                {
+                iActiveCodeToUpinState = EActiveCodeToUpinAskPin;
+                CompleteNotifySecurityEventL( 
+                    RMobilePhone::EPin1Required, KErrNone );
+                }
+            else
+                {
+                iActiveCodeToUpinState = EActiveCodeToUpinIdle;
+                CompleteSetLockSetting( KErrAccessDenied, 
+                    RMobilePhone::EStatusLockUnknown,
+                    RMobilePhone::ELockSetUnknown );
+                }
+            }
+        //Set iPukCodeVerify to EFalse
+        iPukCodeVerify = EFalse;
+
+        //Set iPhonePasswordVerify to EFalse
+        iPhonePasswordVerify = EFalse;
+
+        // FDN HANDLING
+        reqHandle = iMmPhoneTsy->iTsyReqHandleStore->GetTsyReqHandle( 
+            CMmPhoneTsy::EMultimodePhoneSetFdnSetting );
+
+        if ( reqHandle != CMmPhoneTsy::EMultimodePhoneReqHandleUnknown )
+            {
+            if ( KErrNone == aErrorCode )
+                {
+                aErrorCode = iMmPhoneTsy->iMmPhoneExtInterface->
+                    SetFdnSetting( iMmPhoneTsy->iRetFdnSetting );
+                }
+            else
+                {
+                iMmPhoneTsy->CompleteSetFdnSettingL( aErrorCode );
+                }
+            }
+        
+        if ( phoneSetLockSettingHandle != CMmPhoneTsy::EMultimodePhoneReqHandleUnknown )
+            if ( KErrNone == aErrorCode )
+                {
+                CMmDataPackage dataPackage;
+                //add into the package the stored lock and setting
+                dataPackage.PackData( &iLockSettingPhoneLock, &iLockSetting );
+                aErrorCode = iMmPhoneTsy->iMmPhoneExtInterface->
+                    SetLockSettingL( &dataPackage );
+                }
+            else
+                {
+                CompleteSetLockSetting( aErrorCode, RMobilePhone::EStatusLockUnknown, RMobilePhone::ELockSetUnknown );
+                }        	        
+
+        // Reset just used code, empty for next round.
+        RMobilePhone::TCodeAndUnblockCode codes;
+        _LIT( KNullCharacter, "\0" );
+        codes.iCode.Copy( KNullCharacter );
+        iMmPhoneTsy->iMmPhoneExtInterface->DeliverCode( codes );
+        }
+    }
+    
+#endif //USING_CTSY_DISPATCHER