diff -r e03a3db4489e -r 9abfd4f00d37 eapol/eapol_framework/eapol_symbian/am/type/tls_peap/symbian/plugin/src/EapTlsPeapUiCipherSuites.cpp --- a/eapol/eapol_framework/eapol_symbian/am/type/tls_peap/symbian/plugin/src/EapTlsPeapUiCipherSuites.cpp Thu May 13 22:51:27 2010 +0300 +++ b/eapol/eapol_framework/eapol_symbian/am/type/tls_peap/symbian/plugin/src/EapTlsPeapUiCipherSuites.cpp Mon May 24 20:32:47 2010 +0300 @@ -16,7 +16,7 @@ */ /* -* %version: 13.1.2 % +* %version: % */ // This is enumeration of EAPOL source code. @@ -30,26 +30,33 @@ // INCLUDE FILES #include -#include "EapTlsPeapUtils.h" +//#include "EapTlsPeapUtils.h" #include "EapTlsPeapDbParameterNames.h" #include "EapTlsPeapDbDefaults.h" #include #include #include +#include +#include -const TUint KMaxSqlQueryLength = 256; +//const TUint KMaxSqlQueryLength = 256; CEapTlsPeapUiCipherSuites::CEapTlsPeapUiCipherSuites(CEapTlsPeapUiConnection * const aUiConn) : iIsOpened(EFalse) , iUiConn(aUiConn) , iDataPtr(NULL) { + EAP_TRACE_DEBUG_SYMBIAN((_L("CEapTlsPeapUiCipherSuites::CEapTlsPeapUiCipherSuites()\n"))); + EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapTlsPeapUiCipherSuites::CEapTlsPeapUiCipherSuites()\n")); } CEapTlsPeapUiCipherSuites::~CEapTlsPeapUiCipherSuites() { - if (iUiConn) + EAP_TRACE_DEBUG_SYMBIAN((_L("CEapTlsPeapUiCipherSuites::~CEapTlsPeapUiCipherSuites()\n"))); + EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapTlsPeapUiCipherSuites::~CEapTlsPeapUiCipherSuites()\n")); + + if (iUiConn) { Close(); iUiConn = NULL; @@ -59,16 +66,24 @@ TInt CEapTlsPeapUiCipherSuites::Open() { + EAP_TRACE_DEBUG_SYMBIAN((_L("CEapTlsPeapUiCipherSuites::Open()\n"))); + EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapTlsPeapUiCipherSuites::Open()\n")); + if (iIsOpened) { return KErrAlreadyExists; } - TInt err = iUiConn->GetDatabase(iDatabase); + TEapExpandedType aEapType(iUiConn->GetEapType()); + + TRAPD(err, iEapTypeConnection = CEapType::NewL(iUiConn->GetIndexType(), iUiConn->GetIndex(), aEapType)); if (err != KErrNone) - { + { + EAP_TRACE_DEBUG_SYMBIAN((_L("ERROR: CEapTlsPeapUiCipherSuites::Open() CEapType::NewL err=%d\n"),err)); return err; - } + } + + iEapTypeConnection->SetTunnelingType(iUiConn->GetTunnelingType()); iIsOpened = ETrue; @@ -76,8 +91,11 @@ } -TInt CEapTlsPeapUiCipherSuites::GetCipherSuites(CArrayFixFlat ** aDataPtr) +TInt CEapTlsPeapUiCipherSuites::GetCipherSuites(RPointerArray ** aDataPtr) { + EAP_TRACE_DEBUG_SYMBIAN((_L("CEapTlsPeapUiCipherSuites::GetCipherSuites()\n"))); + EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapTlsPeapUiCipherSuites::GetCipherSuites()\n")); + if (aDataPtr == NULL) { return KErrArgument; @@ -91,19 +109,25 @@ { *aDataPtr = iDataPtr; return KErrNone; - } - iDataPtr = new CArrayFixFlat(8); + } + + iDataPtr = new RPointerArray(8); if (!iDataPtr) { return KErrNoMemory; } - TInt i(0); - while (available_cipher_suites[i] != 0) + TInt i_ind(0); + while (available_cipher_suites[i_ind] != 0) { - TEapTlsPeapUiCipherSuite tmp; - tmp.iCipherSuite = available_cipher_suites[i]; - tmp.iIsEnabled = EFalse; + TEapTlsPeapUiCipherSuite * const tmp = new TEapTlsPeapUiCipherSuite; + if (tmp == 0) + { + return KErrNoMemory; + } + + tmp->SetCipherSuite(available_cipher_suites[i_ind]); + tmp->SetIsEnabled(EFalse); TRAPD(err, iDataPtr->AppendL(tmp)); if (err != KErrNone) @@ -111,19 +135,38 @@ return err; } - i++; + i_ind++; } - - - TRAPD(err, FetchDataL()); + EAPSettings aSettings; - if (err != KErrNone) - { - delete iDataPtr; - return err; - } + TRAPD(error,iEapTypeConnection->GetConfigurationL(aSettings)); + if (error) + { + EAP_TRACE_DEBUG_SYMBIAN((_L("ERROR: CEapTlsPeapUiCipherSuites::GetCipherSuites() GetConfigurationL(): failed %d\n"), error)); + return error; + } + + if (aSettings.iCipherSuitesPresent) + { + TInt i_ind(0); + for (i_ind = 0; i_ind < aSettings.iCipherSuites.Count(); ++i_ind) + { + TUint aCipherSuite = aSettings.iCipherSuites[i_ind]; + TInt j_ind(0); + + for (j_ind = 0; j_ind < iDataPtr->Count(); j_ind++) + { + if ((*iDataPtr)[j_ind]->GetCipherSuite() == aCipherSuite) + { + (*iDataPtr)[j_ind]->SetIsEnabled(ETrue); + break; + } + } + } + } + *aDataPtr = iDataPtr; return KErrNone; @@ -132,105 +175,41 @@ TInt CEapTlsPeapUiCipherSuites::Update() { - TRAPD(err, UpdateL()); - return err; -} + EAP_TRACE_DEBUG_SYMBIAN((_L("CEapTlsPeapUiCipherSuites::Update()\n"))); + EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapTlsPeapUiCipherSuites::Update()\n")); + + EAPSettings aSettings; -void CEapTlsPeapUiCipherSuites::UpdateL() -{ - HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); - TPtr sqlStatement = buf->Des(); + aSettings.iCipherSuitesPresent = ETrue; - // Form the query. Query everything. - _LIT(KSQLQuery, "SELECT * FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); - - if (iUiConn->GetEapType() == eap_type_tls) + TInt i_ind(0); + + for (i_ind = 0; i_ind < iDataPtr->Count(); i_ind++) { - sqlStatement.Format(KSQLQuery, - &KTlsAllowedCipherSuitesDatabaseTableName, - &KServiceType, - iUiConn->GetIndexType(), - &KServiceIndex, - iUiConn->GetIndex(), - &KTunnelingType, - iUiConn->GetTunnelingType()); - } - else if (iUiConn->GetEapType() == eap_type_peap) - { - sqlStatement.Format(KSQLQuery, - &KPeapAllowedCipherSuitesDatabaseTableName, - &KServiceType, - iUiConn->GetIndexType(), - &KServiceIndex, - iUiConn->GetIndex(), - &KTunnelingType, - iUiConn->GetTunnelingType()); - } - else if (iUiConn->GetEapType() == eap_type_ttls || iUiConn->GetEapType() == eap_type_ttls_plain_pap) - { - sqlStatement.Format(KSQLQuery, - &KTtlsAllowedCipherSuitesDatabaseTableName, - &KServiceType, - iUiConn->GetIndexType(), - &KServiceIndex, - iUiConn->GetIndex(), - &KTunnelingType, - iUiConn->GetTunnelingType()); + if ((*iDataPtr)[i_ind]->GetIsEnabled()) + { + TInt error = aSettings.iCipherSuites.Append((*iDataPtr)[i_ind]->GetCipherSuite()); + if (error != KErrNone) + { + return error; + } + } } -#ifdef USE_FAST_EAP_TYPE - else if (iUiConn->GetEapType() == eap_type_fast) - { - sqlStatement.Format(KSQLQuery, - &KFastAllowedCipherSuitesDatabaseTableName, - &KServiceType, - iUiConn->GetIndexType(), - &KServiceIndex, - iUiConn->GetIndex(), - &KTunnelingType, - iUiConn->GetTunnelingType()); - } -#endif //#ifdef USE_FAST_EAP_TYPE - - // Evaluate view - RDbView view; - User::LeaveIfError(view.Prepare(iDatabase, TDbQuery(sqlStatement))); - CleanupClosePushL(view); - User::LeaveIfError(view.EvaluateAll()); + TRAPD(error,iEapTypeConnection->SetConfigurationL(aSettings)); + + EAP_TRACE_DEBUG_SYMBIAN((_L("CEapTlsPeapUiDataConnection::Update(): error = %d\n"),error)); - // Delete old rows - if (view.FirstL()) - { - do { - view.DeleteL(); - } while (view.NextL() != EFalse); - } + return error; +} - // Get column set so we get the correct column numbers - CDbColSet* colSet = view.ColSetL(); - CleanupStack::PushL(colSet); - - TInt i(0); - - for (i = 0; i < iDataPtr->Count(); i++) - { - if (iDataPtr->At(i).iIsEnabled) - { - view.InsertL(); - view.SetColL(colSet->ColNo(KServiceType), static_cast(iUiConn->GetIndexType())); - view.SetColL(colSet->ColNo(KServiceIndex), static_cast(iUiConn->GetIndex())); - view.SetColL(colSet->ColNo(KTunnelingType), static_cast(iUiConn->GetTunnelingType())); - view.SetColL(colSet->ColNo(KCipherSuite), static_cast(iDataPtr->At(i).iCipherSuite)); - view.PutL(); - } - } - CleanupStack::PopAndDestroy(colSet); - CleanupStack::PopAndDestroy(); // view - CleanupStack::PopAndDestroy(buf); -} + TInt CEapTlsPeapUiCipherSuites::Close() { + EAP_TRACE_DEBUG_SYMBIAN((_L("CEapTlsPeapUiCipherSuites::Close()\n"))); + EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapTlsPeapUiCipherSuites::Close()\n")); + if (iIsOpened == EFalse) { return KErrNone; @@ -243,109 +222,4 @@ return KErrNone; } - -void CEapTlsPeapUiCipherSuites::FetchDataL() -{ - HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); - TPtr sqlStatement = buf->Des(); - - // Form the query. Query everything. - _LIT(KSQLQuery, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); - - if (iUiConn->GetEapType() == eap_type_tls) - { - sqlStatement.Format(KSQLQuery, - &KCipherSuite, - &KTlsAllowedCipherSuitesDatabaseTableName, - &KServiceType, - iUiConn->GetIndexType(), - &KServiceIndex, - iUiConn->GetIndex(), - &KTunnelingType, - iUiConn->GetTunnelingType()); - } - else if (iUiConn->GetEapType() == eap_type_peap) - { - sqlStatement.Format(KSQLQuery, - &KCipherSuite, - &KPeapAllowedCipherSuitesDatabaseTableName, - &KServiceType, - iUiConn->GetIndexType(), - &KServiceIndex, - iUiConn->GetIndex(), - &KTunnelingType, - iUiConn->GetTunnelingType()); - } - else if (iUiConn->GetEapType() == eap_type_ttls || iUiConn->GetEapType() == eap_type_ttls_plain_pap) - { - sqlStatement.Format(KSQLQuery, - &KCipherSuite, - &KTtlsAllowedCipherSuitesDatabaseTableName, - &KServiceType, - iUiConn->GetIndexType(), - &KServiceIndex, - iUiConn->GetIndex(), - &KTunnelingType, - iUiConn->GetTunnelingType()); - } - -#ifdef USE_FAST_EAP_TYPE - else if (iUiConn->GetEapType() == eap_type_fast) - { - sqlStatement.Format(KSQLQuery, - &KCipherSuite, - &KFastAllowedCipherSuitesDatabaseTableName, - &KServiceType, - iUiConn->GetIndexType(), - &KServiceIndex, - iUiConn->GetIndex(), - &KTunnelingType, - iUiConn->GetTunnelingType()); - } -#endif //#ifdef USE_FAST_EAP_TYPE - - // Evaluate view - RDbView view; - User::LeaveIfError(view.Prepare(iDatabase, TDbQuery(sqlStatement))); - CleanupClosePushL(view); - User::LeaveIfError(view.EvaluateAll()); - - // Get column set so we get the correct column numbers - CDbColSet* colSet = view.ColSetL(); - CleanupStack::PushL(colSet); - - if (view.FirstL()) - { - do { - view.GetL(); - - switch (view.ColType(colSet->ColNo(KCipherSuite))) - { - case EDbColUint32: - { - // Find the corresponding cipher suite in the list - TInt j(0); - TUint id = view.ColUint(colSet->ColNo(KCipherSuite)); - for (j = 0; j < iDataPtr->Count(); j++) - { - if (iDataPtr->At(j).iCipherSuite == id) - { - iDataPtr->At(j).iIsEnabled = ETrue; - break; - } - } - } - break; - default: - User::Leave(KErrArgument); - } - } while (view.NextL() != EFalse); - } - - CleanupStack::PopAndDestroy(colSet); - - CleanupStack::PopAndDestroy(); // view - CleanupStack::PopAndDestroy(buf); -} - // End of file