eapol/eapol_framework/eapol_symbian/am/type/mschapv2/symbian/plugin/src/EapMsChapV2DbUtils.cpp
author hgs
Mon, 24 May 2010 20:32:47 +0300
changeset 26 9abfd4f00d37
parent 2 1c7bc153c08e
child 34 ad1f037f1ac2
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2001-2006 Nokia Corporation and/or its subsidiary(-ies).
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:  EAP and WLAN authentication protocols.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
2
1c7bc153c08e Revision: 201001
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    18
/*
26
hgs
parents: 2
diff changeset
    19
* %version: 46 %
2
1c7bc153c08e Revision: 201001
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    20
*/
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
// This is enumeration of EAPOL source code.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#if defined(USE_EAP_MINIMUM_RELEASE_TRACES)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
	#undef EAP_FILE_NUMBER_ENUM
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
	#define EAP_FILE_NUMBER_ENUM 294 
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
	#undef EAP_FILE_NUMBER_DATE 
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
	#define EAP_FILE_NUMBER_DATE 1127594498 
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#endif //#if defined(USE_EAP_MINIMUM_RELEASE_TRACES)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
// INCLUDE FILES
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include "EapMsChapV2DbUtils.h"
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include "EapMsChapV2DbDefaults.h"
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include "EapMsChapV2DbParameterNames.h"
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
26
hgs
parents: 2
diff changeset
    37
#include <EapTraceSymbian.h>
hgs
parents: 2
diff changeset
    38
#include <EapPluginTools.h>
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
const TUint KMaxSqlQueryLength = 512;
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
const TInt KMicroSecsInAMinute = 60000000; // 60000000 micro seconds is 1 minute.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
// ================= MEMBER FUNCTIONS =======================
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
26
hgs
parents: 2
diff changeset
    45
void EapMsChapV2DbUtils::OpenDatabaseL(
hgs
parents: 2
diff changeset
    46
	RDbNamedDatabase& aDatabase,
hgs
parents: 2
diff changeset
    47
	RFs& aFileServerSession,
hgs
parents: 2
diff changeset
    48
	const TIndexType aIndexType,
hgs
parents: 2
diff changeset
    49
	const TInt aIndex,
hgs
parents: 2
diff changeset
    50
	const eap_type_value_e aTunnelingType)
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
{
26
hgs
parents: 2
diff changeset
    52
	EAP_TRACE_DEBUG_SYMBIAN(
hgs
parents: 2
diff changeset
    53
		(_L("EapMsChapV2DbUtils::OpenDatabaseL(): - Start - aIndexType=%d, aIndex=%d, aTunnelingType=0xfe%06x%08x\n"),
hgs
parents: 2
diff changeset
    54
		aIndexType,
hgs
parents: 2
diff changeset
    55
		aIndex,
hgs
parents: 2
diff changeset
    56
		aTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
    57
		aTunnelingType.get_vendor_type()));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
26
hgs
parents: 2
diff changeset
    59
    EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: EapMsChapV2DbUtils::OpenDatabaseL()\n"));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
	// 1. Open/create a database	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
	
26
hgs
parents: 2
diff changeset
    63
	TInt error(KErrNone);
hgs
parents: 2
diff changeset
    64
	TFileName aPrivateDatabasePathName;
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
26
hgs
parents: 2
diff changeset
    66
	EapPluginTools::CreateDatabaseLC(
hgs
parents: 2
diff changeset
    67
		aDatabase,
hgs
parents: 2
diff changeset
    68
		aFileServerSession,
hgs
parents: 2
diff changeset
    69
		error,
hgs
parents: 2
diff changeset
    70
		KEapMsChapV2DatabaseName,
hgs
parents: 2
diff changeset
    71
		aPrivateDatabasePathName);
hgs
parents: 2
diff changeset
    72
hgs
parents: 2
diff changeset
    73
	if(error == KErrNone)
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
	{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
		aDatabase.Close();
26
hgs
parents: 2
diff changeset
    76
	}
hgs
parents: 2
diff changeset
    77
	else if (error != KErrAlreadyExists) 
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
	{
26
hgs
parents: 2
diff changeset
    79
		User::LeaveIfError(error);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
	}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
	
26
hgs
parents: 2
diff changeset
    82
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): - calls aDatabase.Open()\n")));
hgs
parents: 2
diff changeset
    83
hgs
parents: 2
diff changeset
    84
	error = aDatabase.Open(aFileServerSession, aPrivateDatabasePathName);
hgs
parents: 2
diff changeset
    85
hgs
parents: 2
diff changeset
    86
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): - Opened private DB for EAP-AKA. error=%d\n"), error));
hgs
parents: 2
diff changeset
    87
hgs
parents: 2
diff changeset
    88
	User::LeaveIfError(error);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
26
hgs
parents: 2
diff changeset
    90
	// 2. Create the MSCHAPv2 table to database (ignore error if database exists)
hgs
parents: 2
diff changeset
    91
	// Table columns:
hgs
parents: 2
diff changeset
    92
	//// NAME ///////////////////////////////////////////////// TYPE ////////////// Constant /////////
hgs
parents: 2
diff changeset
    93
	//| ServiceType                                         | UNSIGNED INTEGER  | KServiceType      |//
hgs
parents: 2
diff changeset
    94
	//| ServiceIndex                                        | UNSIGNED INTEGER  | KServiceIndex     |//
hgs
parents: 2
diff changeset
    95
	//| TunnelingTypeVendorId                               | UNSIGNED INTEGER  | KTunnelingTypeVendorId    |//
hgs
parents: 2
diff changeset
    96
	//| TunnelingType                                       | UNSIGNED INTEGER  | KTunnelingType    |//
hgs
parents: 2
diff changeset
    97
	//| EAP_MSCHAPV2_password_prompt                        | UNSIGNED INTEGER  | cf_str_EAP_MSCHAPV2_password_prompt_literal   |//
hgs
parents: 2
diff changeset
    98
	//| EAP_MSCHAPV2_username                               | VARCHAR(255)      | cf_str_EAP_MSCHAPV2_username_literal         |//
hgs
parents: 2
diff changeset
    99
	//| EAP_MSCHAPV2_password                               | VARCHAR(255)      | cf_str_EAP_MSCHAPV2_password_literal         |//
hgs
parents: 2
diff changeset
   100
	//| EAP_MSCHAPv2_max_session_validity_time				      | BIGINT		   	    | cf_str_EAP_MSCHAPv2_max_session_validity_time_literal   |//
hgs
parents: 2
diff changeset
   101
	//| EAP_MSCHAPv2_last_full_authentication_time			    | BIGINT		   	    | KMSCHAPv2LastFullAuthTime	|//
hgs
parents: 2
diff changeset
   102
	//////////////////////////////////////////////////////////////////////////////////////////////////
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
26
hgs
parents: 2
diff changeset
   104
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): calls HBufC::NewLC()\n")));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
	TPtr sqlStatement = buf->Des();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
26
hgs
parents: 2
diff changeset
   109
	_LIT(KSQLCreateTable1, "CREATE TABLE %S \
hgs
parents: 2
diff changeset
   110
		(%S UNSIGNED INTEGER, \
hgs
parents: 2
diff changeset
   111
		 %S UNSIGNED INTEGER, \
hgs
parents: 2
diff changeset
   112
		 %S UNSIGNED INTEGER, \
hgs
parents: 2
diff changeset
   113
		 %S UNSIGNED INTEGER, \
hgs
parents: 2
diff changeset
   114
		 %S UNSIGNED INTEGER, \
hgs
parents: 2
diff changeset
   115
		 %S VARCHAR(255), \
hgs
parents: 2
diff changeset
   116
		 %S VARCHAR(255), \
hgs
parents: 2
diff changeset
   117
		 %S BIGINT, \
hgs
parents: 2
diff changeset
   118
		 %S BIGINT)");
hgs
parents: 2
diff changeset
   119
hgs
parents: 2
diff changeset
   120
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): calls sqlStatement.Format()\n")));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
	sqlStatement.Format(KSQLCreateTable1,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
						&KMsChapV2TableName,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
						&KServiceType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
						&KServiceIndex,
26
hgs
parents: 2
diff changeset
   126
						&KTunnelingTypeVendorId,
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
						&KTunnelingType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
						&cf_str_EAP_MSCHAPV2_password_prompt_literal,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
						&cf_str_EAP_MSCHAPV2_username_literal,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
						&cf_str_EAP_MSCHAPV2_password_literal,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
						&cf_str_EAP_MSCHAPv2_max_session_validity_time_literal, 
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
						&KMSCHAPv2LastFullAuthTime);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
26
hgs
parents: 2
diff changeset
   134
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): calls aDatabase.Execute()\n")));
hgs
parents: 2
diff changeset
   135
hgs
parents: 2
diff changeset
   136
	error = aDatabase.Execute(sqlStatement);
hgs
parents: 2
diff changeset
   137
	if (error != KErrNone && error != KErrAlreadyExists)
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
	{
26
hgs
parents: 2
diff changeset
   139
		EAP_TRACE_DEBUG_SYMBIAN((_L("ERROR: EapMsChapV2DbUtils::OpenDatabaseL(): aDatabase.Execute() error=%d\n"),
hgs
parents: 2
diff changeset
   140
			error));
hgs
parents: 2
diff changeset
   141
hgs
parents: 2
diff changeset
   142
		User::Leave(error);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
	}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
	// 4. Check if database table contains a row for this service type and id  
26
hgs
parents: 2
diff changeset
   146
hgs
parents: 2
diff changeset
   147
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): calls sqlStatement.Format()\n")));
hgs
parents: 2
diff changeset
   148
hgs
parents: 2
diff changeset
   149
	_LIT(KSQLQueryRow, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
	sqlStatement.Format(KSQLQueryRow,
26
hgs
parents: 2
diff changeset
   151
		&cf_str_EAP_MSCHAPV2_username_literal,
hgs
parents: 2
diff changeset
   152
		&KMsChapV2TableName,
hgs
parents: 2
diff changeset
   153
		&KServiceType,
hgs
parents: 2
diff changeset
   154
		aIndexType,
hgs
parents: 2
diff changeset
   155
		&KServiceIndex,
hgs
parents: 2
diff changeset
   156
		aIndex,
hgs
parents: 2
diff changeset
   157
		&KTunnelingTypeVendorId,
hgs
parents: 2
diff changeset
   158
		aTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   159
		&KTunnelingType, 
hgs
parents: 2
diff changeset
   160
		aTunnelingType.get_vendor_type());
hgs
parents: 2
diff changeset
   161
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
	RDbView view;
26
hgs
parents: 2
diff changeset
   163
hgs
parents: 2
diff changeset
   164
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): calls view.Prepare()\n")));
hgs
parents: 2
diff changeset
   165
hgs
parents: 2
diff changeset
   166
	error = view.Prepare(aDatabase, TDbQuery(sqlStatement), TDbWindow::EUnlimited);
hgs
parents: 2
diff changeset
   167
hgs
parents: 2
diff changeset
   168
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): view.Prepare() error=%d\n"),
hgs
parents: 2
diff changeset
   169
		error));
hgs
parents: 2
diff changeset
   170
hgs
parents: 2
diff changeset
   171
	User::LeaveIfError(error);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
	// View must be closed when no longer needed
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
	CleanupClosePushL(view);
26
hgs
parents: 2
diff changeset
   174
hgs
parents: 2
diff changeset
   175
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): calls view.EvaluateAll()\n")));
hgs
parents: 2
diff changeset
   176
hgs
parents: 2
diff changeset
   177
	error = view.EvaluateAll();
hgs
parents: 2
diff changeset
   178
hgs
parents: 2
diff changeset
   179
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): view.EvaluateAll() error=%d\n"),
hgs
parents: 2
diff changeset
   180
		error));
hgs
parents: 2
diff changeset
   181
hgs
parents: 2
diff changeset
   182
	User::LeaveIfError(error);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
	// 5. If row is not found then add it
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
	
26
hgs
parents: 2
diff changeset
   186
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): calls view.CountL()\n")));
hgs
parents: 2
diff changeset
   187
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
	TInt rows = view.CountL();
26
hgs
parents: 2
diff changeset
   189
hgs
parents: 2
diff changeset
   190
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): view.CountL() rows=%d\n"),
hgs
parents: 2
diff changeset
   191
		rows));
hgs
parents: 2
diff changeset
   192
hgs
parents: 2
diff changeset
   193
	CleanupStack::PopAndDestroy(&view);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
	if (rows == 0)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
	{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
		_LIT(KSQLInsert, "SELECT * FROM %S");
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
		sqlStatement.Format(KSQLInsert, &KMsChapV2TableName);		
26
hgs
parents: 2
diff changeset
   198
		
hgs
parents: 2
diff changeset
   199
		EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): calls view.Prepare()\n")));
hgs
parents: 2
diff changeset
   200
hgs
parents: 2
diff changeset
   201
		error = view.Prepare(aDatabase, TDbQuery(sqlStatement), TDbWindow::EUnlimited, RDbView::EInsertOnly);
hgs
parents: 2
diff changeset
   202
hgs
parents: 2
diff changeset
   203
		EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): view.Prepare() error=%d\n"),
hgs
parents: 2
diff changeset
   204
			error));
hgs
parents: 2
diff changeset
   205
hgs
parents: 2
diff changeset
   206
		User::LeaveIfError(error);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
		CleanupClosePushL(view);
26
hgs
parents: 2
diff changeset
   208
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
		// Get column set so we get the correct column numbers
26
hgs
parents: 2
diff changeset
   210
		EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): calls view.ColSetL()\n")));
hgs
parents: 2
diff changeset
   211
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
		CDbColSet* colSet = view.ColSetL();		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
		CleanupStack::PushL(colSet);
26
hgs
parents: 2
diff changeset
   214
hgs
parents: 2
diff changeset
   215
		EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::OpenDatabaseL(): calls view.InsertL()\n")));
hgs
parents: 2
diff changeset
   216
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
		view.InsertL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
		view.SetColL(colSet->ColNo(KServiceType), static_cast<TInt> (aIndexType));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
		view.SetColL(colSet->ColNo(KServiceIndex), aIndex);
26
hgs
parents: 2
diff changeset
   220
		view.SetColL(colSet->ColNo(KTunnelingTypeVendorId), aTunnelingType.get_vendor_id());
hgs
parents: 2
diff changeset
   221
		view.SetColL(colSet->ColNo(KTunnelingType), aTunnelingType.get_vendor_type());
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
		
26
hgs
parents: 2
diff changeset
   223
		view.SetColL(colSet->ColNo(cf_str_EAP_MSCHAPV2_password_prompt_literal), default_EAP_password_prompt);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
		
26
hgs
parents: 2
diff changeset
   225
		view.SetColL(colSet->ColNo(cf_str_EAP_MSCHAPV2_username_literal), default_EAP_username);
hgs
parents: 2
diff changeset
   226
		
hgs
parents: 2
diff changeset
   227
		view.SetColL(colSet->ColNo(cf_str_EAP_MSCHAPV2_password_literal), default_EAP_password);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
		view.SetColL(colSet->ColNo(cf_str_EAP_MSCHAPv2_max_session_validity_time_literal), default_MaxSessionTime);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
		view.SetColL(colSet->ColNo(KMSCHAPv2LastFullAuthTime), default_FullAuthTime);		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
		view.PutL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
				
26
hgs
parents: 2
diff changeset
   235
		CleanupStack::PopAndDestroy(colSet);
hgs
parents: 2
diff changeset
   236
		CleanupStack::PopAndDestroy(&view);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
	} 
26
hgs
parents: 2
diff changeset
   238
hgs
parents: 2
diff changeset
   239
	aDatabase.Compact();
hgs
parents: 2
diff changeset
   240
hgs
parents: 2
diff changeset
   241
	CleanupStack::PopAndDestroy( buf );
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
	CleanupStack::Pop( &aDatabase );	
26
hgs
parents: 2
diff changeset
   243
	CleanupStack::Pop( &aFileServerSession );
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
void EapMsChapV2DbUtils::SetIndexL(
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
	RDbNamedDatabase& aDatabase, 		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
	const TIndexType aIndexType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
	const TInt aIndex,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
	const eap_type_value_e aTunnelingType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
	const TIndexType aNewIndexType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
	const TInt aNewIndex,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
	const eap_type_value_e aNewTunnelingType)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
{
26
hgs
parents: 2
diff changeset
   256
	EAP_TRACE_DEBUG_SYMBIAN(
hgs
parents: 2
diff changeset
   257
		(_L("EapMsChapV2DbUtils::SetIndexL(): -Start- aIndexType=%d, aIndex=%d, aTunnelingType=0xfe%06x%08x\n"),
hgs
parents: 2
diff changeset
   258
		aIndexType,
hgs
parents: 2
diff changeset
   259
		aIndex,
hgs
parents: 2
diff changeset
   260
		aTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   261
		aTunnelingType.get_vendor_type()));
hgs
parents: 2
diff changeset
   262
	
hgs
parents: 2
diff changeset
   263
	EAP_TRACE_DEBUG_SYMBIAN(
hgs
parents: 2
diff changeset
   264
		(_L("EapMsChapV2DbUtils::SetIndexL(): -Start- aNewIndexType=%d, aNewIndex=%d, aNewTunnelingType=0xfe%06x%08x\n"),
hgs
parents: 2
diff changeset
   265
		aNewIndexType,
hgs
parents: 2
diff changeset
   266
		aNewIndex,
hgs
parents: 2
diff changeset
   267
		aNewTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   268
		aNewTunnelingType.get_vendor_type()));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
26
hgs
parents: 2
diff changeset
   270
    EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: EapMsChapV2DbUtils::SetIndexL()\n"));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
	TPtr sqlStatement = buf->Des();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
26
hgs
parents: 2
diff changeset
   275
	_LIT(KSQL, "SELECT * FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   276
26
hgs
parents: 2
diff changeset
   277
	sqlStatement.Format(KSQL,
hgs
parents: 2
diff changeset
   278
		&KMsChapV2TableName, 
hgs
parents: 2
diff changeset
   279
		&KServiceType,
hgs
parents: 2
diff changeset
   280
		aIndexType,
hgs
parents: 2
diff changeset
   281
		&KServiceIndex,
hgs
parents: 2
diff changeset
   282
		aIndex,
hgs
parents: 2
diff changeset
   283
		&KTunnelingTypeVendorId,
hgs
parents: 2
diff changeset
   284
		aTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   285
		&KTunnelingType, 
hgs
parents: 2
diff changeset
   286
		aTunnelingType.get_vendor_type());
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
	RDbView view;
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
	User::LeaveIfError(view.Prepare(aDatabase, TDbQuery(sqlStatement), TDbWindow::EUnlimited));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
	// View must be closed when no longer needed
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
	CleanupClosePushL(view);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
	User::LeaveIfError(view.EvaluateAll());
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
			
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
	TInt rows = view.CountL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
	if (rows == 0)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
	{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   301
		User::Leave(KErrNotFound);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   302
	}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
	// Get the first (and only) row
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
	view.FirstL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
	view.GetL();				
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   307
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   308
	// Get column set so we get the correct column numbers
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
	CDbColSet* colSet = view.ColSetL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   310
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
	CleanupStack::PushL(colSet);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
	view.UpdateL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
    view.SetColL(colSet->ColNo(KServiceType), static_cast<TUint>(aNewIndexType));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
    view.SetColL(colSet->ColNo(KServiceIndex), aNewIndex);
26
hgs
parents: 2
diff changeset
   317
	view.SetColL(colSet->ColNo(KTunnelingTypeVendorId), aNewTunnelingType.get_vendor_id());
hgs
parents: 2
diff changeset
   318
	view.SetColL(colSet->ColNo(KTunnelingType), aNewTunnelingType.get_vendor_type());
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
    view.PutL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
    	
26
hgs
parents: 2
diff changeset
   322
	CleanupStack::PopAndDestroy(colSet);
hgs
parents: 2
diff changeset
   323
	CleanupStack::PopAndDestroy(&view);
hgs
parents: 2
diff changeset
   324
	CleanupStack::PopAndDestroy(buf);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
void EapMsChapV2DbUtils::SetConfigurationL(
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
	RDbNamedDatabase& aDatabase,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
	const EAPSettings& aSettings, 
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
	const TIndexType aIndexType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
	const TInt aIndex,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
	const eap_type_value_e aTunnelingType)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
{
26
hgs
parents: 2
diff changeset
   334
	EAP_TRACE_DEBUG_SYMBIAN(
hgs
parents: 2
diff changeset
   335
		(_L("EapMsChapV2DbUtils::SetConfigurationL(): -Start- aIndexType=%d, aIndex=%d, aTunnelingType=0xfe%06x%08x\n"),
hgs
parents: 2
diff changeset
   336
		aIndexType,
hgs
parents: 2
diff changeset
   337
		aIndex,
hgs
parents: 2
diff changeset
   338
		aTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   339
		aTunnelingType.get_vendor_type()));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
26
hgs
parents: 2
diff changeset
   341
    EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: EapMsChapV2DbUtils::SetConfigurationL()\n"));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
26
hgs
parents: 2
diff changeset
   343
	EAP_TRACE_SETTINGS(&aSettings);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   345
	// Check if the settings are for the correct type
26
hgs
parents: 2
diff changeset
   346
	if (aSettings.iEAPExpandedType != (*EapExpandedTypeMsChapv2.GetType())
hgs
parents: 2
diff changeset
   347
		&& aSettings.iEAPExpandedType != (*EapExpandedPlainMsChapv2.GetType()))
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
	{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
		User::Leave(KErrNotSupported);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
	}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   353
	TPtr sqlStatement = buf->Des();	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
	RDbView view;
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   356
26
hgs
parents: 2
diff changeset
   357
	_LIT(KSQLQuery, "SELECT * FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
hgs
parents: 2
diff changeset
   358
hgs
parents: 2
diff changeset
   359
	sqlStatement.Format(KSQLQuery,
hgs
parents: 2
diff changeset
   360
		&KMsChapV2TableName, 
hgs
parents: 2
diff changeset
   361
		&KServiceType,
hgs
parents: 2
diff changeset
   362
		aIndexType,
hgs
parents: 2
diff changeset
   363
		&KServiceIndex,
hgs
parents: 2
diff changeset
   364
		aIndex,
hgs
parents: 2
diff changeset
   365
		&KTunnelingTypeVendorId,
hgs
parents: 2
diff changeset
   366
		aTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   367
		&KTunnelingType, 
hgs
parents: 2
diff changeset
   368
		aTunnelingType.get_vendor_type());
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   369
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
	// Evaluate view
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   371
	User::LeaveIfError(view.Prepare(aDatabase, TDbQuery(sqlStatement)));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
	CleanupClosePushL(view);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   375
	User::LeaveIfError(view.EvaluateAll());	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   377
	view.FirstL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   378
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   379
	view.UpdateL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   380
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   381
	// Get column set so we get the correct column numbers
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   382
	CDbColSet* colSet = view.ColSetL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   383
	CleanupStack::PushL(colSet);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   384
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   385
	// Username
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   386
	if (aSettings.iUsernamePresent)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
	{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
		// Validate length.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
		if(aSettings.iUsername.Length() > KMaxUsernameLengthInDB)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
		{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
			// Username too long. Can not be stored in DB.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
			
26
hgs
parents: 2
diff changeset
   393
			EAP_TRACE_DEBUG_SYMBIAN((_L("ERROR: EapMsChapV2DbUtils::SetConfigurationL(): Too long Username. Length=%d \n"),
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   394
			aSettings.iUsername.Length()));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   395
			
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   396
			User::Leave(KErrArgument);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   397
		}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   398
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   399
		// Length is ok. Set the value in DB.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   400
		view.SetColL(colSet->ColNo(cf_str_EAP_MSCHAPV2_username_literal), aSettings.iUsername);		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   401
	}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   402
		
26
hgs
parents: 2
diff changeset
   403
	// Password existence.
hgs
parents: 2
diff changeset
   404
	if (aSettings.iPasswordExistPresent
hgs
parents: 2
diff changeset
   405
		&& !aSettings.iPasswordExist)
hgs
parents: 2
diff changeset
   406
	{
hgs
parents: 2
diff changeset
   407
		// Clear password from database.
hgs
parents: 2
diff changeset
   408
		view.SetColL(colSet->ColNo(cf_str_EAP_MSCHAPV2_password_literal), KNullPasswordData);
hgs
parents: 2
diff changeset
   409
		view.PutL();
hgs
parents: 2
diff changeset
   410
		view.SetColNullL(colSet->ColNo(cf_str_EAP_MSCHAPV2_password_literal));
hgs
parents: 2
diff changeset
   411
	}
hgs
parents: 2
diff changeset
   412
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   413
	// Password
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   414
	if (aSettings.iPasswordPresent)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   415
	{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   416
		// Validate length.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   417
		if(aSettings.iPassword.Length() > KMaxPasswordLengthInDB)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   418
		{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   419
			// Password too long. Can not be stored in DB.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   420
			
26
hgs
parents: 2
diff changeset
   421
			EAP_TRACE_DEBUG_SYMBIAN((_L("ERROR: EapMsChapV2DbUtils::SetConfigurationL(): Too long Password. Length=%d \n"),
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   422
			aSettings.iPassword.Length()));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   423
			
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   424
			User::Leave(KErrArgument);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   425
		}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   426
					
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   427
		// Length is ok. Set the value in DB.	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   428
		view.SetColL(colSet->ColNo(cf_str_EAP_MSCHAPV2_password_literal), aSettings.iPassword);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   429
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   430
	}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   431
			
26
hgs
parents: 2
diff changeset
   432
	if (aSettings.iShowPassWordPromptPresent)
hgs
parents: 2
diff changeset
   433
		{	
hgs
parents: 2
diff changeset
   434
		// If password was supplied set password prompting off
hgs
parents: 2
diff changeset
   435
		view.SetColL(colSet->ColNo(cf_str_EAP_MSCHAPV2_password_prompt_literal), aSettings.iShowPassWordPrompt);		
hgs
parents: 2
diff changeset
   436
		}
hgs
parents: 2
diff changeset
   437
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   438
	// Session validity time
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   439
	if (aSettings.iSessionValidityTimePresent)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
	{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
		// User or device management wants to store the session validity time.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   442
		// Convert the time to micro seconds and save.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
		TInt64 validityInMicro = (aSettings.iSessionValidityTime) *  KMicroSecsInAMinute;
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
		view.SetColL(colSet->ColNo(cf_str_EAP_MSCHAPv2_max_session_validity_time_literal), validityInMicro);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   448
		// If max session validity time is supplied and non-zero, set password prompting ON.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
		// It doesn't matter even if the password is supplied. If max session validity is supplied,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
		// it means user needs to provide a password hence prompt should appear.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   451
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   452
		if( validityInMicro != 0)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   453
		{
26
hgs
parents: 2
diff changeset
   454
			view.SetColL(colSet->ColNo(cf_str_EAP_MSCHAPV2_password_prompt_literal), EEapDbTrue);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   455
		}		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   456
	}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   457
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   458
	// Last full authentication time should be made zero when EAP configurations are modified.
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
	// This makes sure that the next authentication with this EAP would be full authentication
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
	// instead of reauthentication even if the session is still valid.
26
hgs
parents: 2
diff changeset
   461
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   462
	view.SetColL(colSet->ColNo(KMSCHAPv2LastFullAuthTime), default_FullAuthTime);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
26
hgs
parents: 2
diff changeset
   464
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::SetConfigurationL(): Session Validity: Resetting Full Auth Time since settings are modified\n")));
hgs
parents: 2
diff changeset
   465
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
	view.PutL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
26
hgs
parents: 2
diff changeset
   468
	CleanupStack::PopAndDestroy(colSet);
hgs
parents: 2
diff changeset
   469
	CleanupStack::PopAndDestroy(&view);
hgs
parents: 2
diff changeset
   470
	CleanupStack::PopAndDestroy(buf);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
void EapMsChapV2DbUtils::GetConfigurationL(
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   474
	RDbNamedDatabase& aDatabase,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
	EAPSettings& aSettings, 
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   476
	const TIndexType aIndexType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
	const TInt aIndex,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
	const eap_type_value_e aTunnelingType)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   479
{
26
hgs
parents: 2
diff changeset
   480
	EAP_TRACE_DEBUG_SYMBIAN(
hgs
parents: 2
diff changeset
   481
		(_L("EapMsChapV2DbUtils::GetConfigurationL(): -Start- aIndexType=%d, aIndex=%d, aTunnelingType=0xfe%06x%08x\n"),
hgs
parents: 2
diff changeset
   482
		aIndexType,
hgs
parents: 2
diff changeset
   483
		aIndex,
hgs
parents: 2
diff changeset
   484
		aTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   485
		aTunnelingType.get_vendor_type()));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   486
26
hgs
parents: 2
diff changeset
   487
    EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: EapMsChapV2DbUtils::GetConfigurationL()\n"));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
	TPtr sqlStatement = buf->Des();	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
	RDbView view;
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
	// Form the query
26
hgs
parents: 2
diff changeset
   495
	_LIT(KSQLQuery, "SELECT * FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
hgs
parents: 2
diff changeset
   496
hgs
parents: 2
diff changeset
   497
	sqlStatement.Format(KSQLQuery,
hgs
parents: 2
diff changeset
   498
		&KMsChapV2TableName, 
hgs
parents: 2
diff changeset
   499
		&KServiceType,
hgs
parents: 2
diff changeset
   500
		aIndexType,
hgs
parents: 2
diff changeset
   501
		&KServiceIndex,
hgs
parents: 2
diff changeset
   502
		aIndex,
hgs
parents: 2
diff changeset
   503
		&KTunnelingTypeVendorId,
hgs
parents: 2
diff changeset
   504
		aTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   505
		&KTunnelingType, 
hgs
parents: 2
diff changeset
   506
		aTunnelingType.get_vendor_type());
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   507
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   508
	// Evaluate view
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   509
	User::LeaveIfError(view.Prepare(aDatabase, TDbQuery(sqlStatement)));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   510
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
	CleanupClosePushL(view);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   512
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
	User::LeaveIfError(view.EvaluateAll());
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   514
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   515
	// Get the first (and only) row
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   516
	view.FirstL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   517
	view.GetL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   518
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   519
	// Get column set so we get the correct column numbers
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
	CDbColSet* colSet = view.ColSetL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
	CleanupStack::PushL(colSet);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   522
26
hgs
parents: 2
diff changeset
   523
	aSettings.iEAPExpandedType = *EapExpandedTypeMsChapv2.GetType(); 
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
	// Username
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
	TPtrC username = view.ColDes(colSet->ColNo(cf_str_EAP_MSCHAPV2_username_literal));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
	aSettings.iUsername.Copy(username);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   528
	aSettings.iUsernamePresent = ETrue;
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   529
	
26
hgs
parents: 2
diff changeset
   530
	// Password existence.
hgs
parents: 2
diff changeset
   531
	aSettings.iPasswordExistPresent = ETrue;
hgs
parents: 2
diff changeset
   532
	aSettings.iPasswordExist = ! view.IsColNull(colSet->ColNo(cf_str_EAP_MSCHAPV2_password_literal));
hgs
parents: 2
diff changeset
   533
hgs
parents: 2
diff changeset
   534
#if defined(USE_EAP_PASSWORD_READ_FROM_DATABASE)
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
	// Password
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   536
	TPtrC password = view.ColDes(colSet->ColNo(cf_str_EAP_MSCHAPV2_password_literal));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
	aSettings.iPassword.Copy(password);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
	aSettings.iPasswordPresent = ETrue;
26
hgs
parents: 2
diff changeset
   539
#else
hgs
parents: 2
diff changeset
   540
	EAP_TRACE_DEBUG_SYMBIAN((_L("WARNING: EapMsChapV2DbUtils::GetConfigurationL(): Password read is disabled\n")));
hgs
parents: 2
diff changeset
   541
#endif //#if defined(USE_EAP_PASSWORD_READ_FROM_DATABASE)
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   542
26
hgs
parents: 2
diff changeset
   543
	aSettings.iShowPassWordPromptPresent = ETrue;
hgs
parents: 2
diff changeset
   544
hgs
parents: 2
diff changeset
   545
	TUint aShow = view.ColUint(colSet->ColNo(cf_str_EAP_MSCHAPV2_password_prompt_literal));
hgs
parents: 2
diff changeset
   546
	if(aShow == EEapDbFalse)
hgs
parents: 2
diff changeset
   547
	{
hgs
parents: 2
diff changeset
   548
		aSettings.iShowPassWordPrompt = EFalse;
hgs
parents: 2
diff changeset
   549
	}
hgs
parents: 2
diff changeset
   550
	else
hgs
parents: 2
diff changeset
   551
	{
hgs
parents: 2
diff changeset
   552
		aSettings.iShowPassWordPrompt = ETrue;
hgs
parents: 2
diff changeset
   553
	}
hgs
parents: 2
diff changeset
   554
	
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   555
	// Session validity time	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   556
	TInt64 maxSessionTimeMicro = view.ColInt64(colSet->ColNo(cf_str_EAP_MSCHAPv2_max_session_validity_time_literal));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   557
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
	// Convert the time to minutes.	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   559
	TInt64 maxSessionTimeMin = maxSessionTimeMicro / KMicroSecsInAMinute;
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   561
	aSettings.iSessionValidityTime = static_cast<TUint>(maxSessionTimeMin);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
	aSettings.iSessionValidityTimePresent = ETrue;
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
		
26
hgs
parents: 2
diff changeset
   564
	CleanupStack::PopAndDestroy(colSet);
hgs
parents: 2
diff changeset
   565
	CleanupStack::PopAndDestroy(&view);
hgs
parents: 2
diff changeset
   566
	CleanupStack::PopAndDestroy(buf);
hgs
parents: 2
diff changeset
   567
hgs
parents: 2
diff changeset
   568
	EAP_TRACE_SETTINGS(&aSettings);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   569
}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
void EapMsChapV2DbUtils::CopySettingsL(
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   572
	RDbNamedDatabase& aDatabase, 		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
	const TIndexType aSrcIndexType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   574
	const TInt aSrcIndex,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
	const eap_type_value_e aSrcTunnelingType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   576
	const TIndexType aDestIndexType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   577
	const TInt aDestIndex,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   578
	const eap_type_value_e aDestTunnelingType)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   579
{
26
hgs
parents: 2
diff changeset
   580
	EAP_TRACE_DEBUG_SYMBIAN(
hgs
parents: 2
diff changeset
   581
		(_L("EapMsChapV2DbUtils::CopySettingsL(): -Start- aSrcIndexType=%d, aSrcIndex=%d, aSrcTunnelingType=0xfe%06x%08x\n"),
hgs
parents: 2
diff changeset
   582
		aSrcIndexType,
hgs
parents: 2
diff changeset
   583
		aSrcIndex,
hgs
parents: 2
diff changeset
   584
		aSrcTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   585
		aSrcTunnelingType.get_vendor_type()));
hgs
parents: 2
diff changeset
   586
	
hgs
parents: 2
diff changeset
   587
	EAP_TRACE_DEBUG_SYMBIAN(
hgs
parents: 2
diff changeset
   588
		(_L("EapMsChapV2DbUtils::CopySettingsL(): -Start- aDestIndexType=%d, aDestTunnelingType=0xfe%06x%08x\n"),
hgs
parents: 2
diff changeset
   589
		aDestIndexType,
hgs
parents: 2
diff changeset
   590
		aDestIndex,
hgs
parents: 2
diff changeset
   591
		aDestTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   592
		aDestTunnelingType.get_vendor_type()));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   593
26
hgs
parents: 2
diff changeset
   594
    EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: EapMsChapV2DbUtils::CopySettingsL()\n"));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   595
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   596
	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   597
	TPtr sqlStatement = buf->Des();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   598
26
hgs
parents: 2
diff changeset
   599
	_LIT(KSQL, "SELECT * FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   600
26
hgs
parents: 2
diff changeset
   601
	sqlStatement.Format(KSQL,
hgs
parents: 2
diff changeset
   602
		&KMsChapV2TableName, 
hgs
parents: 2
diff changeset
   603
		&KServiceType,
hgs
parents: 2
diff changeset
   604
		aSrcIndexType,
hgs
parents: 2
diff changeset
   605
		&KServiceIndex,
hgs
parents: 2
diff changeset
   606
		aSrcIndex,
hgs
parents: 2
diff changeset
   607
		&KTunnelingTypeVendorId,
hgs
parents: 2
diff changeset
   608
		aSrcTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   609
		&KTunnelingType, 
hgs
parents: 2
diff changeset
   610
		aSrcTunnelingType.get_vendor_type());
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   611
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   612
	RDbView view;
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   613
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   614
	User::LeaveIfError(view.Prepare(aDatabase, TDbQuery(sqlStatement), TDbWindow::EUnlimited));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   615
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   616
	// View must be closed when no longer needed
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   617
	CleanupClosePushL(view);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   618
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   619
	User::LeaveIfError(view.EvaluateAll());
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   620
			
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   621
	TInt rows = view.CountL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   622
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   623
	if (rows == 0)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   624
	{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   625
		User::Leave(KErrNotFound);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   626
	}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   627
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   628
	// Get the first (and only) row
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   629
	view.FirstL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   630
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   631
	view.GetL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   632
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   633
	view.InsertCopyL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   634
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   635
	// Get column set so we get the correct column numbers
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   636
	CDbColSet* colSet = view.ColSetL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   637
	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   638
	CleanupStack::PushL(colSet);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   639
		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   640
	view.SetColL(colSet->ColNo(KServiceType), static_cast<TUint>(aDestIndexType));
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   641
    view.SetColL(colSet->ColNo(KServiceIndex), aDestIndex);
26
hgs
parents: 2
diff changeset
   642
	view.SetColL(colSet->ColNo(KTunnelingTypeVendorId), aDestTunnelingType.get_vendor_id());
hgs
parents: 2
diff changeset
   643
	view.SetColL(colSet->ColNo(KTunnelingType), aDestTunnelingType.get_vendor_type());
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   644
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
    view.PutL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   646
    	
26
hgs
parents: 2
diff changeset
   647
	CleanupStack::PopAndDestroy(colSet);
hgs
parents: 2
diff changeset
   648
	CleanupStack::PopAndDestroy(&view);
hgs
parents: 2
diff changeset
   649
	CleanupStack::PopAndDestroy(buf);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   650
}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   651
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   652
void EapMsChapV2DbUtils::DeleteConfigurationL(	
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   653
	const TIndexType aIndexType,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   654
	const TInt aIndex,
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   655
	const eap_type_value_e aTunnelingType)
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   656
{
26
hgs
parents: 2
diff changeset
   657
	EAP_TRACE_DEBUG_SYMBIAN(
hgs
parents: 2
diff changeset
   658
		(_L("EapMsChapV2DbUtils::DeleteConfigurationL(): -Start- aIndexType=%d, aIndex=%d, aTunnelingType=0xfe%06x%08x\n"),
hgs
parents: 2
diff changeset
   659
		aIndexType,
hgs
parents: 2
diff changeset
   660
		aIndex,
hgs
parents: 2
diff changeset
   661
		aTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   662
		aTunnelingType.get_vendor_type()));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   663
26
hgs
parents: 2
diff changeset
   664
    EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: EapMsChapV2DbUtils::DeleteConfigurationL()\n"));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   665
26
hgs
parents: 2
diff changeset
   666
	RDbNamedDatabase aDatabase;
hgs
parents: 2
diff changeset
   667
	RFs aFileServerSession;
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   668
26
hgs
parents: 2
diff changeset
   669
	TInt error(KErrNone);
hgs
parents: 2
diff changeset
   670
	TFileName aPrivateDatabasePathName;
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   671
	
26
hgs
parents: 2
diff changeset
   672
	EapPluginTools::CreateDatabaseLC(
hgs
parents: 2
diff changeset
   673
		aDatabase,
hgs
parents: 2
diff changeset
   674
		aFileServerSession,
hgs
parents: 2
diff changeset
   675
		error,
hgs
parents: 2
diff changeset
   676
		KEapMsChapV2DatabaseName,
hgs
parents: 2
diff changeset
   677
		aPrivateDatabasePathName);
hgs
parents: 2
diff changeset
   678
hgs
parents: 2
diff changeset
   679
	if(error == KErrNone)
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   680
	{
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   681
		// Database was created so it was empty. No need for further actions.
26
hgs
parents: 2
diff changeset
   682
		aDatabase.Destroy();
hgs
parents: 2
diff changeset
   683
		CleanupStack::PopAndDestroy(&aDatabase);
hgs
parents: 2
diff changeset
   684
		CleanupStack::PopAndDestroy(&aFileServerSession);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   685
		return;
26
hgs
parents: 2
diff changeset
   686
	}
hgs
parents: 2
diff changeset
   687
	else if (error != KErrAlreadyExists) 
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   688
	{
26
hgs
parents: 2
diff changeset
   689
		User::LeaveIfError(error);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   690
	}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   691
	
26
hgs
parents: 2
diff changeset
   692
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::DeleteConfigurationL(): - calls aDatabase.Open()\n")));
hgs
parents: 2
diff changeset
   693
hgs
parents: 2
diff changeset
   694
	error = aDatabase.Open(aFileServerSession, aPrivateDatabasePathName);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   695
26
hgs
parents: 2
diff changeset
   696
	EAP_TRACE_DEBUG_SYMBIAN((_L("EapMsChapV2DbUtils::DeleteConfigurationL(): - Opened private DB for EAP-LEAP. error=%d\n"), error));
hgs
parents: 2
diff changeset
   697
hgs
parents: 2
diff changeset
   698
	User::LeaveIfError(error);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   699
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   700
	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   701
	TPtr sqlStatement = buf->Des();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   702
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   703
	// Main settings table
26
hgs
parents: 2
diff changeset
   704
	_LIT(KSQL, "SELECT * FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
hgs
parents: 2
diff changeset
   705
hgs
parents: 2
diff changeset
   706
	sqlStatement.Format(KSQL,
hgs
parents: 2
diff changeset
   707
		&KMsChapV2TableName, 
hgs
parents: 2
diff changeset
   708
		&KServiceType,
hgs
parents: 2
diff changeset
   709
		aIndexType,
hgs
parents: 2
diff changeset
   710
		&KServiceIndex,
hgs
parents: 2
diff changeset
   711
		aIndex,
hgs
parents: 2
diff changeset
   712
		&KTunnelingTypeVendorId,
hgs
parents: 2
diff changeset
   713
		aTunnelingType.get_vendor_id(),
hgs
parents: 2
diff changeset
   714
		&KTunnelingType, 
hgs
parents: 2
diff changeset
   715
		aTunnelingType.get_vendor_type());
hgs
parents: 2
diff changeset
   716
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   717
	// Evaluate view
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   718
	RDbView view;
26
hgs
parents: 2
diff changeset
   719
	User::LeaveIfError(view.Prepare(aDatabase,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   720
	CleanupClosePushL(view);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   721
	User::LeaveIfError(view.EvaluateAll());
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   722
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   723
	// Delete rows
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   724
	if (view.FirstL())
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   725
	{		
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   726
		do {
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   727
			view.DeleteL();
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   728
		} while (view.NextL() != EFalse);
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   729
	}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   730
26
hgs
parents: 2
diff changeset
   731
	CleanupStack::PopAndDestroy(&view);
hgs
parents: 2
diff changeset
   732
	CleanupStack::PopAndDestroy(buf);
hgs
parents: 2
diff changeset
   733
	CleanupStack::PopAndDestroy(&aDatabase);
hgs
parents: 2
diff changeset
   734
	CleanupStack::PopAndDestroy(&aFileServerSession);
0
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   735
}
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   736
c8830336c852 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   737
// End of File