--- a/eapol/eapol_framework/eapol_symbian/am/type/tls_peap/symbian/plugin/src/EapTlsPeapUiCipherSuites.cpp Fri May 14 15:54:13 2010 +0300
+++ b/eapol/eapol_framework/eapol_symbian/am/type/tls_peap/symbian/plugin/src/EapTlsPeapUiCipherSuites.cpp Fri Jun 11 13:40:22 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 <e32base.h>
-#include "EapTlsPeapUtils.h"
+//#include "EapTlsPeapUtils.h"
#include "EapTlsPeapDbParameterNames.h"
#include "EapTlsPeapDbDefaults.h"
#include <EapTlsPeapUiConnection.h>
#include <EapTlsPeapUiCipherSuites.h>
#include <EapTlsPeapUiCipherSuite.h>
+#include <EapTraceSymbian.h>
+#include <EapType.h>
-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<TEapTlsPeapUiCipherSuite> ** aDataPtr)
+TInt CEapTlsPeapUiCipherSuites::GetCipherSuites(RPointerArray<TEapTlsPeapUiCipherSuite> ** 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<TEapTlsPeapUiCipherSuite>(8);
+ }
+
+ iDataPtr = new RPointerArray<TEapTlsPeapUiCipherSuite>(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<TUint>(iUiConn->GetIndexType()));
- view.SetColL(colSet->ColNo(KServiceIndex), static_cast<TUint>(iUiConn->GetIndex()));
- view.SetColL(colSet->ColNo(KTunnelingType), static_cast<TUint>(iUiConn->GetTunnelingType()));
- view.SetColL(colSet->ColNo(KCipherSuite), static_cast<TUint>(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