Revision: 201023 RCL_3 PDK_3.0.1
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 21 Jun 2010 15:29:21 +0300
branchRCL_3
changeset 18 8c9c07ad8b6b
parent 16 df4dfb214df5
child 20 65a3ef1d5bd0
Revision: 201023 Kit: 2010125
commsconfig/cscapplicationui/src/cscservicecontainer.cpp
convergedconnectionhandler/cchserver/src/cchconnmonhandler.cpp
sipvoipprovider/src/svpmosession.cpp
voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmliaphandler.cpp
voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlpresencehandler.cpp
voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlsiphandler.cpp
voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlvoiphandler.cpp
voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlxdmhandler.cpp
--- a/commsconfig/cscapplicationui/src/cscservicecontainer.cpp	Wed Jun 09 09:31:04 2010 +0300
+++ b/commsconfig/cscapplicationui/src/cscservicecontainer.cpp	Mon Jun 21 15:29:21 2010 +0300
@@ -447,22 +447,23 @@
     if (  iListBoxItemArray.Count() )
         {
         TListBoxItem item = ListBoxItem();
-        TBool  disabled = iCCHHandler.IsServiceDisabled( item.iServiceId );
-        
-        // if enabled -> show unable to delete note
-        if ( !disabled )
-            {
-            CCSCNoteUtilities::ShowInformationNoteL( 
-                CCSCNoteUtilities::ECSCUnableToDeleteNote,
-                    iServiceHandler.ServiceNameL( item.iServiceId ) );
-            return;
-            }
 
         // Show confirmation query for service deletion                        
         if ( CCSCNoteUtilities::ShowCommonQueryL( 
             CCSCNoteUtilities::ECSCDeleteServiceQuery, 
             iServiceHandler.ServiceNameL( item.iServiceId ) ) )
             {
+            TBool  disabled = iCCHHandler.IsServiceDisabled( item.iServiceId );
+               
+            // if enabled -> show unable to delete note
+            if ( !disabled )
+                {
+                CCSCNoteUtilities::ShowInformationNoteL( 
+                    CCSCNoteUtilities::ECSCUnableToDeleteNote,
+                        iServiceHandler.ServiceNameL( item.iServiceId ) );
+                return;
+                }
+            
             // First check if there is a service plugin UID.
             TInt count = iServicePluginHandler.PluginCount( 
                 CCSCEngServicePluginHandler::EInitialized );
--- a/convergedconnectionhandler/cchserver/src/cchconnmonhandler.cpp	Wed Jun 09 09:31:04 2010 +0300
+++ b/convergedconnectionhandler/cchserver/src/cchconnmonhandler.cpp	Mon Jun 21 15:29:21 2010 +0300
@@ -105,12 +105,15 @@
 CCCHConnMonHandler::~CCCHConnMonHandler()
     {
     CCHLOGSTRING( "CCCHConnMonHandler::~CCCHConnMonHandler" );
-    iConnChangeListenerTimer->Cancel();
+    if ( iConnChangeListenerTimer )
+        {
+        iConnChangeListenerTimer->Cancel();
+        }		
     delete iConnChangeListenerTimer;
     StopNotify();
     Cancel();
     iPendingRequests.Close();
-	iUnsolvedConnIds.Close();
+    iUnsolvedConnIds.Close();
     iConnIapIds.Close();
     iAvailableSNAPs.Close();
     iAvailableIAPs.Close();
@@ -177,6 +180,7 @@
     MCCHConnMonHandlerNotifier* aObserver )
     {
     CCHLOGSTRING( "CCCHConnMonHandler::SetSNAPsAvailabilityChangeListener" );
+	iConnChangeListenerTimer->Cancel();
     iSNAPsAvailabilityObserver = aObserver;
     if ( iSNAPsAvailabilityObserver )
         {
@@ -564,6 +568,7 @@
         }
     if ( iSNAPsAvailabilityObserver )
         {
+		iConnChangeListenerTimer->Cancel();
         iSNAPsAvailabilityObserver->SNAPsAvailabilityChanged( KErrCancel );
         iSNAPsAvailabilityObserver = NULL;
         }
--- a/sipvoipprovider/src/svpmosession.cpp	Wed Jun 09 09:31:04 2010 +0300
+++ b/sipvoipprovider/src/svpmosession.cpp	Mon Jun 21 15:29:21 2010 +0300
@@ -117,14 +117,27 @@
     // Add P-Preferred-Identity header if CLIR is on  
     if ( iSVPUtility.IsCLIROnL() )
         {
-        const TDesC8* userAor = NULL;
-        TInt err = profile->GetParameter( KSIPUserAor, userAor );
+        HBufC8* userAor = NULL;
+        const MDesC8Array* aors( NULL ); // Array of registered address of records
+        
+        TInt result = profile->GetParameter( KSIPRegisteredAors, aors );
         
-        if ( !err )
+        if ( !aors || aors->MdcaCount() == KErrNone )
             {
-            iSVPUtility.AddPPreferredIdentityToUserHeadersL( 
-                *aUserHeaders, *userAor );
+            SVPDEBUG1( "CSVPMoSession::CompleteUriL - registered aors array empty" )
+            const TDesC8* userAorStr = NULL;
+            User::LeaveIfError( profile->GetParameter( KSIPUserAor, userAorStr ) );
+            SVPDEBUG2( "CSVPMoSession::CompleteUriL - KSIPUserAor result: %d", result )
+            userAor = userAorStr->AllocLC();
             }
+        else
+            {
+            userAor = aors->MdcaPoint( 0 ).AllocLC();
+            }    
+
+        iSVPUtility.AddPPreferredIdentityToUserHeadersL( 
+            *aUserHeaders, *userAor );
+        CleanupStack::PopAndDestroy(); //userAor
         }
     
     // create Mce out session 
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmliaphandler.cpp	Wed Jun 09 09:31:04 2010 +0300
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmliaphandler.cpp	Mon Jun 21 15:29:21 2010 +0300
@@ -604,8 +604,7 @@
     TUint32 iapId = newConnMethod.GetIntAttributeL( CMManager::ECmIapId );
     TUint32 iapServiceId = newConnMethod.GetIntAttributeL( 
         CMManager::ECmIapServiceId );
-    CleanupStack::PopAndDestroy( &newConnMethod ); // CS:0
-
+    
     if ( aTempIap.iSecurityType == CMManager::EWlanSecModeWep )
         {
         DBG_PRINT( "   secMode WEP" );
@@ -613,7 +612,7 @@
         // CS:1
         CWEPSecuritySettings* wepSecSettings = 
             CWEPSecuritySettings::NewL();
-        CleanupStack::PushL( wepSecSettings ); // CS:2
+        CleanupStack::PushL( wepSecSettings ); // CS:3
         const TInt wepKeyCount = aTempIap.iWepKeys.Count();
         for ( TInt counter = 0; counter < wepKeyCount; counter++ )
             {
@@ -623,23 +622,29 @@
             }
         wepSecSettings->SaveL( wlanId, *db );
         // wepSecSettings, db
-        CleanupStack::PopAndDestroy( 2, db ); // CS:0
+        CleanupStack::PopAndDestroy( 2, db ); // CS:1
         }
     else if ( CMManager::EWlanSecModeWpa == aTempIap.iSecurityType ||
         CMManager::EWlanSecModeWpa2 == aTempIap.iSecurityType )
         {
         DBG_PRINT( "   secMode WPA/WPA2" );
         CMDBSession* db = CMDBSession::NewLC( 
-            CMDBSession::LatestVersion() ); // CS:1
+            CMDBSession::LatestVersion() ); // CS:2
         CWPASecuritySettings* wpaSecSettings = 
             CWPASecuritySettings::NewL( ESecurityModeWpa );
-        CleanupStack::PushL( wpaSecSettings ); // CS:2
+        CleanupStack::PushL( wpaSecSettings ); // CS:3
 
         if ( EAPSettings::EEapNone == aTempIap.iEapType )
             {
             DBG_PRINT( "   EapType none" );
-            User::LeaveIfError( wpaSecSettings->SetWPAPreSharedKey( 
-                aTempIap.iPreSharedKey->Des() ));
+            //If error happens then delete newConnMethod and leave
+            TInt error = wpaSecSettings->SetWPAPreSharedKey( 
+                aTempIap.iPreSharedKey->Des() );
+            if ( error )
+                {
+                newConnMethod.DeleteL();
+                User::Leave( error );
+                }
             wpaSecSettings->SaveL( wlanId, *db, ESavingBrandNewAP, 0 );
             }
         else if ( EAPSettings::EEapLeap == aTempIap.iEapType )
@@ -648,24 +653,29 @@
 
             TBuf8<KMaxNodeValueLength> eapId;
             eapId.Copy( KEapLeapId, KEapChars );
-            User::LeaveIfError( 
-                wpaSecSettings->SetWPAEnabledEAPPlugin( eapId ) );
+            
+            TInt error = wpaSecSettings->SetWPAEnabledEAPPlugin( eapId );
+            if ( error )
+                {
+                newConnMethod.DeleteL();
+                User::Leave( error );
+                }
             wpaSecSettings->SaveL( wlanId, *db, ESavingBrandNewAP, 0 );
 
             CEapType* eapType = CEapType::NewL( eapId, ELan, wlanId );
-            CleanupStack::PushL( eapType ); // CS:3
+            CleanupStack::PushL( eapType ); // CS:4
             EAPSettings* eapSettings = new (ELeave) EAPSettings();
-            CleanupStack::PushL( eapSettings ); // CS:4
+            CleanupStack::PushL( eapSettings ); // CS:5
             eapSettings->iEAPType = EAPSettings::EEapLeap;
             eapSettings->iUsername.Copy( aTempIap.iEapUsername->Des() );
             eapSettings->iUsernamePresent = ETrue;
             eapSettings->iPassword.Copy( aTempIap.iEapPassword->Des() );
             eapSettings->iPasswordPresent = ETrue;
             eapType->SetConfigurationL( *eapSettings );
-            CleanupStack::PopAndDestroy( 2, eapType ); // CS:2
+            CleanupStack::PopAndDestroy( 2, eapType ); // CS:3
             }
         // wpaSecSettings, db
-        CleanupStack::PopAndDestroy( 2, db ); // CS:0
+        CleanupStack::PopAndDestroy( 2, db ); // CS:1
         }
     else if ( CMManager::EWlanSecMode802_1x == aTempIap.iSecurityType )
         {
@@ -675,12 +685,19 @@
         CWPASecuritySettings* wpaSecSettings = 
             CWPASecuritySettings::NewL( ESecurityMode8021x );
         CleanupStack::PushL( wpaSecSettings ); // CS:2
-        User::LeaveIfError( wpaSecSettings->SetWPAPreSharedKey( 
-            aTempIap.iPreSharedKey->Des() ));
+        TInt error = wpaSecSettings->SetWPAPreSharedKey( 
+            aTempIap.iPreSharedKey->Des() );
+        if ( error )
+            {
+            newConnMethod.DeleteL();
+            User::Leave( error );
+            }
         wpaSecSettings->SaveL( wlanId, *db, ESavingBrandNewAP, 0 );
         // wpaSecSettings, db
-        CleanupStack::PopAndDestroy( 2, db ); // CS:0
+        CleanupStack::PopAndDestroy( 2, db ); // CS:1
         }
+    CleanupStack::PopAndDestroy( &newConnMethod ); // CS:0
+    
     DBG_PRINT( "CVoipXmlIapHandler::CreateIapL - end" );
     return iapId;
     }
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlpresencehandler.cpp	Wed Jun 09 09:31:04 2010 +0300
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlpresencehandler.cpp	Mon Jun 21 15:29:21 2010 +0300
@@ -214,14 +214,16 @@
 void CVoipXmlPresenceHandler::CreateProviderNameL( TDes& aName )
     {
     DBG_PRINT( "CVoipXmlPresenceHandler::CreateProviderNameL begin" );
-
+    
+    const TInt maxModifyLength = 
+        KMaxNodeNameLength - KMaxProfileNameAppendLength;
     RArray<TInt> settingIds;
     CleanupClosePushL( settingIds ); // CS:1
     // CS:2
     CDesCArray* names = PresSettingsApi::GetAllSetsNamesLC( settingIds );
 
     HBufC* newName = HBufC::NewLC( KMaxNodeNameLength ); // CS:3
-    newName->Des().Copy( aName );
+    newName->Des().Copy( aName.Left( maxModifyLength ) );
     const TInt count( names->MdcaCount() );
     TUint i( 1 ); // Add number to the name if name already in use.
 
@@ -236,7 +238,7 @@
             {
             // If the name is changed we need to begin the comparison
             // again from the first profile.
-            newName->Des().Copy( aName );
+            newName->Des().Copy( aName.Left( maxModifyLength ) );
             newName->Des().Append( KOpenParenthesis() );
             newName->Des().AppendNum( i );
             newName->Des().Append( KClosedParenthesis() );  
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlsiphandler.cpp	Wed Jun 09 09:31:04 2010 +0300
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlsiphandler.cpp	Mon Jun 21 15:29:21 2010 +0300
@@ -499,17 +499,20 @@
 void CVoipXmlSipHandler::CreateProviderNameL( const TDesC8& aName )
     {
     DBG_PRINT( "CVoipXmlSipHandler::CreateProviderNameL begin" );
-
+    
+    const TInt maxModifyLength = 
+        KMaxNodeNameLength - KMaxProfileNameAppendLength;
+    
     RPointerArray<CSIPProfile> profiles;
     CleanupResetAndDestroyL( profiles ); // CS:1
-
+    
     // Get all profiles based on profile types.
     iRegistry->ProfilesL( profiles );
     const TInt profileCount = profiles.Count();
-
+    
     // Go through loaded profiles and check for name duplicates.
     HBufC8* name = HBufC8::NewLC( KMaxNodeNameLength ); // CS:2
-    name->Des().Copy( aName );
+    name->Des().Copy( aName.Left( maxModifyLength ) );
     TUint i( 1 ); // Add number to the name if name already in use.
     const TInt count( profiles.Count() );
     for ( TInt counter = 0; counter < count; counter++ )
@@ -520,7 +523,7 @@
         profile->GetParameter( KSIPProviderName, existingName );
         if ( 0 == existingName->Compare( *name ) )
             {
-            name->Des().Copy( aName );
+            name->Des().Copy( aName.Left( maxModifyLength ) );
             name->Des().Append( KOpenParenthesis8() );
             name->Des().AppendNum( i );
             name->Des().Append( KClosedParenthesis8() );  
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlvoiphandler.cpp	Wed Jun 09 09:31:04 2010 +0300
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlvoiphandler.cpp	Mon Jun 21 15:29:21 2010 +0300
@@ -294,7 +294,7 @@
         {
         case EName:
             {
-            TBuf<KMaxSettingsNameLength> name( KNullDesC );
+            TBuf<KMaxNodeValueLength> name( KNullDesC );
             name.Copy( aValue );
             TRAP_IGNORE( ValidateProfileNameL( name ) );
             iEntry->iProviderName.Copy( name );
@@ -809,7 +809,6 @@
     newName->Des().Copy( aName.Left( maxModifyLength ) );
 
     TUint i( 1 ); // Add number to the name if name already in use.
-    TBool changed( EFalse );
 
     // Go through each profile and see if the name of the new profile    
     // matches one of the existing names. If it does change it and
@@ -834,16 +833,11 @@
                 {
                 User::Leave( KErrBadName );
                 }
-            changed = ETrue;
             }
         CleanupStack::PopAndDestroy( profile ); // CS:2
         }
-
-    // Change setting only if it was changed.
-    if ( changed )
-        {
-        aName.Copy( newName->Des() );
-        }
+    
+    aName.Copy( *newName );
 
     // newName, &voipIds
     CleanupStack::PopAndDestroy( 2, &voipIds ); // CS:0
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlxdmhandler.cpp	Wed Jun 09 09:31:04 2010 +0300
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlxdmhandler.cpp	Mon Jun 21 15:29:21 2010 +0300
@@ -174,14 +174,16 @@
 void CVoipXmlXdmHandler::CreateProviderNameL( TDes& aName )
     {
     DBG_PRINT( "CVoipXmlXdmHandler::CreateProviderNameL begin" );
-
+	
+    const TInt maxModifyLength = 
+        KMaxNodeNameLength - KMaxProfileNameAppendLength;
     RArray<TInt> settingIds;
     CleanupClosePushL( settingIds ); // CS:1
     // CS:2
     CDesCArray* names = TXdmSettingsApi::CollectionNamesLC( settingIds );
 
     HBufC* newName = HBufC::NewLC( KMaxNodeNameLength ); // CS:3
-    newName->Des().Copy( aName );
+    newName->Des().Copy( aName.Left( maxModifyLength ) );
     const TInt count( names->MdcaCount() );
     TUint i( 1 ); // Add number to the name if name already in use.
 
@@ -196,7 +198,7 @@
             {
             // If the name is changed we need to begin the comparison
             // again from the first profile.
-            newName->Des().Copy( aName );
+            newName->Des().Copy( aName.Left( maxModifyLength ) );
             newName->Des().Append( KOpenParenthesis() );
             newName->Des().AppendNum( i );
             newName->Des().Append( KClosedParenthesis() );