omaprovisioning/provisioning/accesspointadapter/Src/CWPAPNapdef.cpp
changeset 35 0deca9b72b62
parent 2 5594fba90824
--- a/omaprovisioning/provisioning/accesspointadapter/Src/CWPAPNapdef.cpp	Thu May 27 13:43:36 2010 +0300
+++ b/omaprovisioning/provisioning/accesspointadapter/Src/CWPAPNapdef.cpp	Fri Jun 11 14:27:59 2010 +0300
@@ -39,9 +39,11 @@
 #include <cmconnectionmethodext.h>
 #include <commdb.h>
 #include <WlanCdbCols.h>
-
+#include <EapExpandedType.h>
 #include <centralrepository.h>
 #include <pdpcontextmanagerinternalcrkeys.h>
+#include <EapGeneralSettings.h>
+#include <EapTypeDefinitions.h>
 
 const TUint KIapColumn        = 0x00000100;
 const TUint KLingerColumn     = 0x00000200;
@@ -610,7 +612,7 @@
 			        {
                     CEapTypeElement* newEap = new (ELeave) CEapTypeElement;
                     newEap->iEAPSettings = new (ELeave) EAPSettings;
-               	    newEap->iCertificate = new (ELeave) CertificateEntry;
+               	    newEap->iCertificate = new (ELeave) EapCertificateEntry;
                     iEapTypeArray.AppendL(newEap);
 			        }
 			    else if(aCharacteristic.Name().Compare( SECSSID ) == 0)
@@ -1028,7 +1030,7 @@
         {
         FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::HandleEAPParametersL EAPTYPE" ) );
               
-        ConvertEAPStringToIds( value, eap->iEapTypeString, reinterpret_cast<TUint &> ( eap->iEAPSettings->iEAPType )  );
+        ConvertEAPStringToIds( value, eap->iEapTypeString, eap->iEAPSettings->iEAPExpandedType );
         
         }
     else if( ( aParameter.Name().Compare( EAPUSERNAME ) ) == 0 )
@@ -1038,6 +1040,8 @@
             {
             eap->iEAPSettings->iUsername = value;
             eap->iEAPSettings->iUsernamePresent = ETrue;
+            eap->iEAPSettings->iUseAutomaticUsernamePresent = ETrue;
+            eap->iEAPSettings->iUseAutomaticUsername = EFalse;
             }
         }// else if 
     else if( ( aParameter.Name().Compare( EAPPASSWORD ) ) == 0 )
@@ -1047,6 +1051,8 @@
             {
             eap->iEAPSettings->iPassword = value;
             eap->iEAPSettings->iPasswordPresent = ETrue;
+            eap->iEAPSettings-> iShowPassWordPromptPresent = ETrue;
+            eap->iEAPSettings-> iShowPassWordPrompt = EFalse;
             }
         }// else if 
     else if( ( aParameter.Name().Compare( EAPREALM ) ) == 0 )
@@ -1057,6 +1063,8 @@
             {
             eap->iEAPSettings->iRealm = value;
             eap->iEAPSettings->iRealmPresent = ETrue;
+            eap->iEAPSettings->iUseAutomaticRealmPresent = ETrue;
+            eap->iEAPSettings->iUseAutomaticRealm = EFalse;
             }
         }// else if 
     else if( ( aParameter.Name().Compare( EAPUSEPSEUD ) ) == 0 )
@@ -1085,7 +1093,8 @@
         {
         
         FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::HandleEAPParametersL EAPENCAPS" ) );
-        TUint dummy;
+        
+        TEapExpandedType dummy; 
         ConvertEAPStringToIds( value, eap->iEncapsulatingExpandedEapId, dummy );
                      
         }// else if    
@@ -1204,17 +1213,16 @@
         {
         FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::HandleEAPParametersL EAPISSNAME" ) );
         
-        eap->iCertificate->iSubjectName = value;
-        eap->iCertificate->iSubjectNamePresent = ETrue;
+        eap->iCertificate->SetSubjectName(value);
+        eap->iCertificate->SetSubjectNamePresent();
         }// else if        
         
     else if( ( aParameter.Name().Compare( EAPSUBNAME ) ) == 0 )
         {
         FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::HandleEAPParametersL EAPSUBNAME" ) );
         
-        eap->iCertificate->iIssuerName = value;
-        eap->iCertificate->iIssuerNamePresent = ETrue;
-       
+        eap->iCertificate->SetIssuerName(value);
+        eap->iCertificate->SetIssuerNamePresent();       
         }// else if        
         
     else if( ( aParameter.Name().Compare( EAPCERTTYPE ) ) == 0 )
@@ -1224,22 +1232,26 @@
 			{
 			FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::HandleEAPParametersL EEapSim" ) );
             
-            eap->iCertificate->iCertType = CertificateEntry::ECA;
+            eap->iCertificate->SetCertType(EapCertificateEntry::ECA);
+            eap->iEAPSettings-> iUseAutomaticCACertificatePresent = ETrue;
+            eap->iEAPSettings-> iUseAutomaticCACertificate = EFalse;
 			}
 		else
 		    {
-		    eap->iCertificate->iCertType = CertificateEntry::EUser;
+		    eap->iCertificate->SetCertType(EapCertificateEntry::EUser);
 		    }
 		// Certificates must be present since this field was added
-		eap->iEAPSettings->iCertificatesPresent = ETrue; 
+		eap->iEAPSettings->iCertificatesPresent = ETrue;
+		eap->iCertificate->SetIsEnabledPresent();
+		eap->iCertificate->SetIsEnabled(ETrue) ;
         
         }// else if        
     else if( ( aParameter.Name().Compare( EAPSERNUM ) ) == 0 )
         {
         FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::HandleEAPParametersL EAPSERNUM" ) );
         
-        eap->iCertificate->iSerialNumber = value;
-        eap->iCertificate->iSerialNumberPresent = ETrue;
+        eap->iCertificate->SetSerialNumber(value);
+        eap->iCertificate->SetSerialNumberPresent();
         }// else if
         
     else if( ( aParameter.Name().Compare( EAPSUBKEYID ) ) == 0 )
@@ -1331,11 +1343,13 @@
        			break;
        			}
        		}
+       	TBuf8<KMaxSubKeyLenght> keyIdentifier;
+       	keyIdentifier.Copy(key);
        	// store key value only if no errors occurred
        	if (err == KErrNone) 
        		{
-       		eap->iCertificate->iSubjectKeyID.Copy(key);
-       		eap->iCertificate->iSubjectKeyIDPresent = ETrue;
+       		eap->iCertificate->SetSubjectKeyId(keyIdentifier);
+       		eap->iCertificate->SetSubjectKeyIdPresent();
        		eap->iEAPSettings->iCertificatesPresent = ETrue; 
        		}
        	}
@@ -1344,8 +1358,8 @@
     else if( ( aParameter.Name().Compare( EAPTHUMBPRINT ) ) == 0 )
         {
         FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::HandleEAPParametersL EAPTHUMBPRINT" ) );
-        eap->iCertificate->iThumbprintPresent = ETrue;
-        eap->iCertificate->iThumbprint = value;
+        eap->iCertificate->SetThumbprintPresent();
+        eap->iCertificate->SetThumbprint(value);
         }// else if                  
     }
 
@@ -1589,7 +1603,7 @@
             if ( eap->iEAPSettings->iCertificatesPresent )
             	{
             	FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::SaveWlanDataL Certificate was present." ) );
-            	eap->iEAPSettings->iCertificates.AppendL( *eap->iCertificate );	
+            	eap->iEAPSettings->iCertificates.Append( eap->iCertificate );	
             	}                  
 
             // Save EAP list
@@ -1613,23 +1627,23 @@
                     }
                 
                 }
-            
-			// Set iEncapsulatingEapTypes
-			for ( TInt j = 0; j < iEapTypeArray.Count(); j++ )
-				{
-				// Check if any method has this method as the encapsulating method
-				if ( eap->iEapTypeString == iEapTypeArray[j]->iEncapsulatingExpandedEapId )
-					{
-					// Append this method to iEncapsulatedEAPType
-					eap->iEAPSettings->iEncapsulatedEAPTypes.Append( iEapTypeArray[j]->iEAPSettings->iEAPType );
-					eap->iEAPSettings->iEncapsulatedEAPTypesPresent = ETrue;
-					}
-				}			
-			
+            // Set iEncapsulatingEapTypes
+                 for ( TInt j = 0; j < iEapTypeArray.Count(); j++ )
+                     {
+                     // Check if any method has this method as the encapsulating method
+                     if ( eap->iEapTypeString == iEapTypeArray[j]->iEncapsulatingExpandedEapId )
+                         {
+                         // Append this method to iEncapsulatedEAPType
+                         eap->iEAPSettings->iEnabledEncapsulatedEAPExpandedTypes.Append( iEapTypeArray[j]->iEAPSettings->iEAPExpandedType );
+                         eap->iEAPSettings->iEnabledEncapsulatedEAPExpandedTypesPresent = ETrue;
+                         }
+                     }
+                 
             FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::SaveWlanDataL save EAP settings CEapType::NewL" ) );        
             CEapType* eapType = NULL;
 
-            TRAPD( error, ( eapType = CEapType::NewL( eap->iEapTypeString, ELan, serviceId ) ) );
+            
+            TRAPD( error, ( eapType = CEapType::NewL( ELan, serviceId, eap->iEAPSettings->iEAPExpandedType ) ) );
 
             if ( ( error == KErrNone ) && eapType )
                 {
@@ -1638,8 +1652,8 @@
                 // Check if this type is tunneled
                 if ( eap->iEncapsulatingExpandedEapId.Length() > 0 )
                 	{
-                	// It is tunneled. Take the last byte of the expanded id.
-                	eapType->SetTunnelingType( eap->iEncapsulatingExpandedEapId[KExpandedEapIdLength - 1] );
+                	// It is tunneled. 
+                	eapType->SetTunnelingType( eap->iEncapsulatingExpandedEapId);
                 	
                 	}
                 
@@ -1678,14 +1692,19 @@
     		    if ( ch == '+' ) ++numPlus;
     		    else if ( ch == '-' ) ++numMinus;
     		    }
-    		    
-    		// each entry consumes 8 bytes in binary format
-    		HBufC8* enabledEAPPlugin = HBufC8::NewL( 8 * numPlus );
-    		CleanupStack::PushL( enabledEAPPlugin );
+    		// load general EAP settings If
+    		CEapGeneralSettings* genSettings;
+    		genSettings = CEapGeneralSettings::NewL(ELan, serviceId);
+    		CleanupStack::PushL( genSettings );
+
+    		// get lists of enabled/disabled EAPs for the IAP
     		
-    		HBufC8* disabledEAPPlugin = HBufC8::NewL( 8 * numMinus );
-    		CleanupStack::PushL( disabledEAPPlugin );
-    		    
+    		RArray<TEapExpandedType> enabledEapMethods;
+    		RArray<TEapExpandedType> disabledEapMethods;
+
+    		enabledEapMethods.Reset();
+    		disabledEapMethods.Reset();
+   		    
     		lex.Assign( eapList );
     		
     		while ( !lex.Eos() )
@@ -1695,9 +1714,6 @@
     		    
     		    if ( lex.Val( implUid ) != KErrNone || !implUid )
     		        {
-    		        // if the old string is corrupted, null out both lists
-    		        enabledEAPPlugin->Des().Zero();
-    		        disabledEAPPlugin->Des().Zero();
     		        break;
     		        }
     		
@@ -1708,36 +1724,28 @@
     		    
     		    if ( implUid > 0 )
     		        {
-    		        enabledEAPPlugin->Des().Append( 
-    		                            Abs( implUid ) == KPlainMsChapV2ImplUid? 
-    		                                        KMsChapV2Padding: KPadding );
-    		        enabledEAPPlugin->Des().Append( Abs( implUid ) );
+    		        TBuf8<KExpandedEapIdLength> tempbuf;
+    		        if(Abs( implUid ) == KPlainMsChapV2ImplUid)
+    		            {
+    		            tempbuf.Append(KMsChapV2Padding);
+    		            }
+    		        else
+    		            {
+    		            tempbuf.Append(KPadding);
+    		            }
+    		        tempbuf.Append(Abs( implUid ));
+    		        TEapExpandedType expandedTypebuf(tempbuf);
+    		        enabledEapMethods.Append(expandedTypebuf);   
     		        }
-    		    else if (implUid < 0 )
-    		        {
-    		        disabledEAPPlugin->Des().Append( 
-    		                            Abs( implUid ) == KPlainMsChapV2ImplUid? 
-    		                                        KMsChapV2Padding: KPadding );
-    		        disabledEAPPlugin->Des().Append( Abs( implUid ) );
-    		        }
-    		    
+    		        		    
     		    // swallow the delimiter (',')
     		    lex.Get();
     		    }
-                	
-	
-	
-	  		wLanServiceTable->WriteTextL( TPtrC( WLAN_ENABLED_EAPS ), 
-    		                              enabledEAPPlugin? 
-    		                                    (const TDesC8&)*enabledEAPPlugin: 
-    		                                    (const TDesC8&)KNullDesC8 );
+    
+    		genSettings->SetEapMethods(enabledEapMethods, disabledEapMethods);  
+    		            
+    		CleanupStack::PopAndDestroy( genSettings );
     		
-    		wLanServiceTable->WriteTextL( TPtrC( WLAN_DISABLED_EAPS ), 
-    		                              disabledEAPPlugin? 
-    		                                    (const TDesC8&)*disabledEAPPlugin: 
-    		                                    (const TDesC8&)KNullDesC8 );
-    		CleanupStack::PopAndDestroy( disabledEAPPlugin );
-    		CleanupStack::PopAndDestroy( enabledEAPPlugin );
     
      
             
@@ -1933,68 +1941,68 @@
     
     }
 
-void CWPAPNapdef::ConvertEAPStringToIds( const TDesC& aEAPString, TDes8& aExpandedId, TUint& aId)
+void CWPAPNapdef::ConvertEAPStringToIds( const TDesC& aEAPString, TDes8& aExpandedId, TEapExpandedType& aID)
 	{
     if ( aEAPString == KEAPSIM )
 		{	
 		FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::ConvertEAPStringToIds EEapSim" ) );
-		aExpandedId.Copy( KEapSimTypeId, KExpandedEapIdLength );		
-		aId = EAPSettings::EEapSim;
+		aExpandedId.Copy( KEapSimTypeId, KExpandedEapIdLength );
+		aID = *EapExpandedTypeSim.GetType();
 		}
     else if( aEAPString == KEAPAKA )
         {
   		FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::ConvertEAPStringToIds EEapAka" ) );
 		aExpandedId.Copy( KEapAkaTypeId, KExpandedEapIdLength );	
-		aId = EAPSettings::EEapAka;	
+		aID = *EapExpandedTypeAka.GetType();	
         }
     else if( aEAPString == KEAPTLS )
         {
 		FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::ConvertEAPStringToIds EEapTls" ) );
 		aExpandedId.Copy( KEapTlsTypeId, KExpandedEapIdLength );	
-		aId = EAPSettings::EEapTls;	
+		aID = *EapExpandedTypeTls.GetType();	
         }
     else if( aEAPString == KEAPPEAP )
         {
 		FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::ConvertEAPStringToIds EEapPeap" ) );
 		aExpandedId.Copy( KEapPeapTypeId, KExpandedEapIdLength );	
-		aId = EAPSettings::EEapPeap;	
+		aID = *EapExpandedTypePeap.GetType();	
         }
     else if( aEAPString == KEAPTTLS )
         {
 		FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::ConvertEAPStringToIds EEapTtls" ) );
 		aExpandedId.Copy( KEapTtlsTypeId, KExpandedEapIdLength );		
-		aId = EAPSettings::EEapTtls;
+		aID = *EapExpandedTypeTtls.GetType();
         }
    else if( aEAPString == KEAPLEAP )
         {
 		FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::ConvertEAPStringToIds EEapLeap" ) );
 		aExpandedId.Copy( KEapLeapTypeId, KExpandedEapIdLength );
-		aId = EAPSettings::EEapLeap;		
+		aID = *EapExpandedTypeLeap.GetType();		
         }                                    
    else if( aEAPString == KEAPMSCHAPV2 )
         {
 		FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::ConvertEAPStringToIds EEapMschapv2" ) );
 		aExpandedId.Copy( KEapMschapv2TypeId, KExpandedEapIdLength );		
-		aId = EAPSettings::EEapMschapv2;
+		aID = *EapExpandedTypeMsChapv2.GetType();
         }     
    else if( aEAPString == KEAPGTC )
         {
 		FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::ConvertEAPStringToIds EEapGtc" ) );
 		aExpandedId.Copy( KEapGtcTypeId, KExpandedEapIdLength );
-		aId = EAPSettings::EEapGtc;
+		aID = *EapExpandedTypeGtc.GetType();
         }
    else if( aEAPString == KEAPFAST )
         {
 		FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::ConvertEAPStringToIds EEapFast" ) );
 		aExpandedId.Copy( KEapFastTypeId, KExpandedEapIdLength );
-		aId = EAPSettings::EEapFast;
+		aID = *EapExpandedTypeFast.GetType();
         }
 
     else
         {
 		FLOG( _L( "[AccesspointAdapter] CWPAPNapdef::ConvertEAPStringToIds EEapNone" ) );
 		aExpandedId.Copy( KEapNoneId, KExpandedEapIdLength );
-		aId = EAPSettings::EEapNone;
+		aID = *EapExpandedTypeNone.GetType();
         }
 
 	}