eapol/eapol_framework/eapol_symbian/am/type/gsmsim/symbian/eap_am_type_gsmsim_symbian.cpp
branchRCL_3
changeset 18 bad0cc58d154
parent 2 1c7bc153c08e
child 19 c74b3d9f6b9e
equal deleted inserted replaced
17:30e048a7b597 18:bad0cc58d154
    14 * Description:  EAP and WLAN authentication protocols.
    14 * Description:  EAP and WLAN authentication protocols.
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 /*
    18 /*
    19 * %version: 50 %
    19 * %version: 47.1.10 %
    20 */
    20 */
    21 
    21 
    22 // This is enumeration of EAPOL source code.
    22 // This is enumeration of EAPOL source code.
    23 #if defined(USE_EAP_MINIMUM_RELEASE_TRACES)
    23 #if defined(USE_EAP_MINIMUM_RELEASE_TRACES)
    24 	#undef EAP_FILE_NUMBER_ENUM
    24 	#undef EAP_FILE_NUMBER_ENUM
    37 #include "eap_am_tools_symbian.h"
    37 #include "eap_am_tools_symbian.h"
    38 #include "eap_state_notification.h"
    38 #include "eap_state_notification.h"
    39 #include "EapSimDbDefaults.h"
    39 #include "EapSimDbDefaults.h"
    40 #include "EapSimDbParameterNames.h"
    40 #include "EapSimDbParameterNames.h"
    41 #include "EapSimDbUtils.h"
    41 #include "EapSimDbUtils.h"
    42 #include "eap_am_trace_symbian.h"
    42 #include "EapTraceSymbian.h"
    43 
    43 
    44 #include <d32dbms.h>	// For DBMS
    44 #include <d32dbms.h>	// For DBMS
    45 #include <s32strm.h> 	// For RReadStream
    45 #include <s32strm.h> 	// For RReadStream
    46 
    46 
    47 #if defined (USE_EAP_GSMSIM_INTERFACE) && !defined(__WINS__)
    47 #if defined (USE_EAP_GSMSIM_INTERFACE) && !defined(__WINS__)
   106 , m_do_rand_uniqueness_check(true)
   106 , m_do_rand_uniqueness_check(true)
   107 , m_max_session_time(0)
   107 , m_max_session_time(0)
   108 {
   108 {
   109 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   109 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   110 
   110 
   111 #ifdef USE_EAP_EXPANDED_TYPES
       
   112 
       
   113 	m_tunneling_vendor_type = m_tunneling_type.get_vendor_type();
       
   114 
       
   115 #else
       
   116 
       
   117 	m_tunneling_vendor_type = static_cast<TUint>(m_tunneling_type);
       
   118 
       
   119 #endif //#ifdef USE_EAP_EXPANDED_TYPES
       
   120 
       
   121 	if (receive_network_id != 0
   111 	if (receive_network_id != 0
   122 		&& receive_network_id->get_is_valid_data() == true)
   112 		&& receive_network_id->get_is_valid_data() == true)
   123 	{
   113 	{
   124 		eap_status_e status = m_receive_network_id.set_copy_of_network_id(
   114 		eap_status_e status = m_receive_network_id.set_copy_of_network_id(
   125 			receive_network_id);
   115 			receive_network_id);
   139 
   129 
   140 //--------------------------------------------------
   130 //--------------------------------------------------
   141 
   131 
   142 void eap_am_type_gsmsim_symbian_c::ConstructL()
   132 void eap_am_type_gsmsim_symbian_c::ConstructL()
   143 {
   133 {
       
   134 	TInt error = m_session.Connect();
       
   135 	EAP_TRACE_DEBUG_SYMBIAN((_L("eap_am_type_gsmsim_symbian_c::ConstructL(): - m_session.Connect(), error=%d\n"), error));
       
   136 	User::LeaveIfError(error);
       
   137 
   144 	// Open/create database
   138 	// Open/create database
   145 	EapSimDbUtils::OpenDatabaseL(m_database, m_session, m_index_type, m_index, m_tunneling_type);	
   139 	EapSimDbUtils::OpenDatabaseL(m_database, m_session, m_index_type, m_index, m_tunneling_type);	
   146 	
   140 	
   147 	// SIM IMSI, Kc and SRES are queried from SIM using SIM interface. 
   141 	// SIM IMSI, Kc and SRES are queried from SIM using SIM interface. 
   148 	// If this is not used then Nokia test algorithms and test IMSI is used.
   142 	// If this is not used then Nokia test algorithms and test IMSI is used.
   288 
   282 
   289 	// Form the insertion command
   283 	// Form the insertion command
   290 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
   284 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
   291 	TPtr sqlStatement = buf->Des();
   285 	TPtr sqlStatement = buf->Des();
   292 
   286 
   293 	_LIT(KSQLInsert, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d");
   287 	_LIT(KSQLInsert, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
   294 	sqlStatement.Format(KSQLInsert, &KXKey, &KK_aut, &KK_encr, &KReauthCounter, &KSimTableName, 
   288 	sqlStatement.Format(
   295 		&KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type);
   289 		KSQLInsert,
       
   290 		&KXKey,
       
   291 		&KK_aut,
       
   292 		&KK_encr,
       
   293 		&KReauthCounter,
       
   294 		&KSimTableName, 
       
   295 		&KServiceType,
       
   296 		m_index_type,
       
   297 		&KServiceIndex,
       
   298 		m_index,
       
   299 		&KTunnelingTypeVendorId,
       
   300 		m_tunneling_type.get_vendor_id(),
       
   301 		&KTunnelingType, 
       
   302 		m_tunneling_type.get_vendor_type());
   296 		
   303 		
   297 	// Evaluate view
   304 	// Evaluate view
   298 	RDbView view;
   305 	RDbView view;
   299 	User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
   306 	User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
   300 	CleanupClosePushL(view);
   307 	CleanupClosePushL(view);
   352 }
   359 }
   353 
   360 
   354 
   361 
   355 //--------------------------------------------------
   362 //--------------------------------------------------
   356 
   363 
   357 eap_status_e eap_am_type_gsmsim_symbian_c::authentication_finished(
   364 EAP_FUNC_EXPORT eap_status_e eap_am_type_gsmsim_symbian_c::authentication_finished(
   358 	const bool true_when_successful,
   365 	const bool true_when_successful,
   359 	const eap_gsmsim_authentication_type_e authentication_type,
   366 	const eap_gsmsim_authentication_type_e authentication_type,
   360 	const eap_type_gsmsim_identity_type identity_type)
   367 	const eap_type_gsmsim_identity_type identity_type)
   361 {
   368 {
   362 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   369 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   425 
   432 
   426 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
   433 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
   427 	TPtr sqlStatement = buf->Des();
   434 	TPtr sqlStatement = buf->Des();
   428 
   435 
   429 	// Form the query
   436 	// Form the query
   430 	_LIT(KSQLQuery, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d");
   437 	_LIT(KSQLQuery, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
   431 	sqlStatement.Format(KSQLQuery, &KXKey, &KK_aut, &KK_encr, &KReauthCounter, &KSimTableName, 
   438 	sqlStatement.Format(
   432 		&KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type);
   439 		KSQLQuery,
       
   440 		&KXKey,
       
   441 		&KK_aut,
       
   442 		&KK_encr,
       
   443 		&KReauthCounter,
       
   444 		&KSimTableName,
       
   445 		&KServiceType,
       
   446 		m_index_type,
       
   447 		&KServiceIndex,
       
   448 		m_index,
       
   449 		&KTunnelingTypeVendorId,
       
   450 		m_tunneling_type.get_vendor_id(),
       
   451 		&KTunnelingType, 
       
   452 		m_tunneling_type.get_vendor_type());
   433 		
   453 		
   434 	RDbView view;
   454 	RDbView view;
   435 	// Evaluate view
   455 	// Evaluate view
   436 	User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement)));
   456 	User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement)));
   437 	CleanupClosePushL(view);
   457 	CleanupClosePushL(view);
   531 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   551 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   532 		
   552 		
   533 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
   553 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
   534 	TPtr sqlStatement = buf->Des();
   554 	TPtr sqlStatement = buf->Des();
   535 
   555 
   536 	_LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d");
   556 	_LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
   537 	sqlStatement.Format(KSQLInsert, &KReauthCounter, &KSimTableName, 
   557 	sqlStatement.Format(
   538 		&KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type);
   558 		KSQLInsert,
       
   559 		&KReauthCounter,
       
   560 		&KSimTableName, 
       
   561 		&KServiceType,
       
   562 		m_index_type,
       
   563 		&KServiceIndex,
       
   564 		m_index,
       
   565 		&KTunnelingTypeVendorId,
       
   566 		m_tunneling_type.get_vendor_id(),
       
   567 		&KTunnelingType, 
       
   568 		m_tunneling_type.get_vendor_type());
   539 		
   569 		
   540 	// Evaluate view
   570 	// Evaluate view
   541 	RDbView view;
   571 	RDbView view;
   542 	User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
   572 	User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
   543 	CleanupClosePushL(view);
   573 	CleanupClosePushL(view);
   631 // Needed only for test environment.
   661 // Needed only for test environment.
   632 
   662 
   633 	{
   663 	{
   634 		eap_variable_data_c simulator_sim_algorithm(m_am_tools);
   664 		eap_variable_data_c simulator_sim_algorithm(m_am_tools);
   635 
   665 
   636 		eap_status_e status = m_partner->read_configure(
   666 		eap_status_e status = type_configure_read(
   637 			cf_str_EAP_GSMSIM_simulator_sim_algorithm.get_field(),
   667 			cf_str_EAP_GSMSIM_simulator_sim_algorithm.get_field(),
   638 			&simulator_sim_algorithm);
   668 			&simulator_sim_algorithm);
   639 		if (status == eap_status_ok
   669 		if (status == eap_status_ok
   640 			&& simulator_sim_algorithm.get_is_valid_data() == true
   670 			&& simulator_sim_algorithm.get_is_valid_data() == true
   641 			&& simulator_sim_algorithm.get_data_length() > 0ul
   671 			&& simulator_sim_algorithm.get_data_length() > 0ul
   668 			}
   698 			}
   669 		}
   699 		}
   670 	}
   700 	}
   671 	
   701 	
   672 	{
   702 	{
   673 		eap_status_e status = m_partner->read_configure(
   703 		eap_status_e status = type_configure_read(
   674 			cf_str_EAP_GSMSIM_simulator_sim_ki.get_field(),
   704 			cf_str_EAP_GSMSIM_simulator_sim_ki.get_field(),
   675 			&m_simulator_sim_ki);
   705 			&m_simulator_sim_ki);
   676 		if (status == eap_status_ok
   706 		if (status == eap_status_ok
   677 			&& m_simulator_sim_ki.get_is_valid_data() == true
   707 			&& m_simulator_sim_ki.get_is_valid_data() == true
   678 			&& m_simulator_sim_ki.get_data_length() > 0ul
   708 			&& m_simulator_sim_ki.get_data_length() > 0ul
   717 
   747 
   718 	{
   748 	{
   719 		// Read Maximum Session Validity Time from the config file
   749 		// Read Maximum Session Validity Time from the config file
   720 		eap_variable_data_c sessionTimeFromFile(m_am_tools);
   750 		eap_variable_data_c sessionTimeFromFile(m_am_tools);
   721 		
   751 		
   722 		eap_status_e status = m_partner->read_configure(
   752 		eap_status_e status = type_configure_read(
   723 			cf_str_EAP_GSMSIM_max_session_validity_time.get_field(),
   753 			cf_str_EAP_GSMSIM_max_session_validity_time.get_field(),
   724 			&sessionTimeFromFile);
   754 			&sessionTimeFromFile);
   725 		
   755 		
   726 		if (status == eap_status_ok
   756 		if (status == eap_status_ok
   727 			&& sessionTimeFromFile.get_is_valid_data() == true
   757 			&& sessionTimeFromFile.get_is_valid_data() == true
   902 
   932 
   903 	// Form the insertion command
   933 	// Form the insertion command
   904 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
   934 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
   905 	TPtr sqlStatement = buf->Des();
   935 	TPtr sqlStatement = buf->Des();
   906 
   936 
   907 	_LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d");
   937 	_LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
   908 	sqlStatement.Format(KSQLInsert, &KPseudonymId, &KSimTableName, 
   938 	sqlStatement.Format(
   909 		&KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type);
   939 		KSQLInsert,
       
   940 		&KPseudonymId,
       
   941 		&KSimTableName, 
       
   942 		&KServiceType,
       
   943 		m_index_type,
       
   944 		&KServiceIndex,
       
   945 		m_index,
       
   946 		&KTunnelingTypeVendorId,
       
   947 		m_tunneling_type.get_vendor_id(),
       
   948 		&KTunnelingType, 
       
   949 		m_tunneling_type.get_vendor_type());
   910 
   950 
   911 	// Evaluate view
   951 	// Evaluate view
   912 	RDbView view;
   952 	RDbView view;
   913 	User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
   953 	User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
   914 	CleanupClosePushL(view);
   954 	CleanupClosePushL(view);
   999 
  1039 
  1000 	// Form the insertion command
  1040 	// Form the insertion command
  1001 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
  1041 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
  1002 	TPtr sqlStatement = buf->Des();
  1042 	TPtr sqlStatement = buf->Des();
  1003 
  1043 
  1004 	_LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d");
  1044 	_LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
  1005 	sqlStatement.Format(KSQLInsert, &KReauthId, &KSimTableName, 
  1045 	sqlStatement.Format(
  1006 		&KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type);
  1046 		KSQLInsert,
       
  1047 		&KReauthId,
       
  1048 		&KSimTableName, 
       
  1049 		&KServiceType,
       
  1050 		m_index_type,
       
  1051 		&KServiceIndex,
       
  1052 		m_index,
       
  1053 		&KTunnelingTypeVendorId,
       
  1054 		m_tunneling_type.get_vendor_id(),
       
  1055 		&KTunnelingType, 
       
  1056 		m_tunneling_type.get_vendor_type());
  1007 		
  1057 		
  1008 	// Evaluate view
  1058 	// Evaluate view
  1009 	RDbView view;
  1059 	RDbView view;
  1010 	User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
  1060 	User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
  1011 	CleanupClosePushL(view);
  1061 	CleanupClosePushL(view);
  1091 	
  1141 	
  1092 	// Form the insertion command
  1142 	// Form the insertion command
  1093 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
  1143 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
  1094 	TPtr sqlStatement = buf->Des();
  1144 	TPtr sqlStatement = buf->Des();
  1095 
  1145 
  1096 	_LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d");
  1146 	_LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
  1097 	sqlStatement.Format(KSQLInsert, &KPreviousIMSI, &KSimTableName, 
  1147 	sqlStatement.Format(
  1098 		&KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type);
  1148 		KSQLInsert,
       
  1149 		&KPreviousIMSI,
       
  1150 		&KSimTableName, 
       
  1151 		&KServiceType,
       
  1152 		m_index_type,
       
  1153 		&KServiceIndex,
       
  1154 		m_index,
       
  1155 		&KTunnelingTypeVendorId,
       
  1156 		m_tunneling_type.get_vendor_id(),
       
  1157 		&KTunnelingType, 
       
  1158 		m_tunneling_type.get_vendor_type());
       
  1159 
  1099 	// Evaluate view
  1160 	// Evaluate view
  1100 	RDbView view;
  1161 	RDbView view;
  1101 	
  1162 	
  1102 	User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
  1163 	User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited));
  1103 	CleanupClosePushL(view);
  1164 	CleanupClosePushL(view);
  1215 	m_stored_reauth_id.reset();
  1276 	m_stored_reauth_id.reset();
  1216 	m_previous_imsi.reset();
  1277 	m_previous_imsi.reset();
  1217 
  1278 
  1218 	// Query all the relevant parameters
  1279 	// Query all the relevant parameters
  1219 
  1280 
  1220 	_LIT(KSQLQuery, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d");
  1281 	_LIT(KSQLQuery, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
  1221 	sqlStatement.Format(KSQLQuery, &KReauthId, &KReauthCounter, &KPseudonymId,
  1282 	sqlStatement.Format(
  1222 						&KPreviousIMSI, &KSimTableName,
  1283 		KSQLQuery,
  1223 						&KServiceType, m_index_type, 
  1284 		&KReauthId,
  1224 						&KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type);
  1285 		&KReauthCounter,
       
  1286 		&KPseudonymId,
       
  1287 		&KPreviousIMSI,
       
  1288 		&KSimTableName,
       
  1289 		&KServiceType,
       
  1290 		m_index_type, 
       
  1291 		&KServiceIndex,
       
  1292 		m_index,
       
  1293 		&KTunnelingTypeVendorId,
       
  1294 		m_tunneling_type.get_vendor_id(),
       
  1295 		&KTunnelingType, 
       
  1296 		m_tunneling_type.get_vendor_type());
  1225 
  1297 
  1226 	RDbView view;
  1298 	RDbView view;
  1227 	// Evaluate view
  1299 	// Evaluate view
  1228 	User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement)));
  1300 	User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement)));
  1229 	CleanupClosePushL(view);
  1301 	CleanupClosePushL(view);
  1574 }
  1646 }
  1575 
  1647 
  1576 //--------------------------------------------------
  1648 //--------------------------------------------------
  1577 
  1649 
  1578 //
  1650 //
  1579 eap_status_e eap_am_type_gsmsim_symbian_c::cancel_SIM_IMSI_or_pseudonym_or_reauthentication_id_query()
  1651 EAP_FUNC_EXPORT eap_status_e eap_am_type_gsmsim_symbian_c::cancel_SIM_IMSI_or_pseudonym_or_reauthentication_id_query()
  1580 {
  1652 {
  1581 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1653 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1582 #if defined (USE_EAP_GSMSIM_INTERFACE) && !defined(__WINS__)
  1654 #if defined (USE_EAP_GSMSIM_INTERFACE) && !defined(__WINS__)
  1583 	if (m_is_client == true)
  1655 	if (m_is_client == true)
  1584 	{
  1656 	{
  1938 }
  2010 }
  1939 
  2011 
  1940 //-------------------------------------------------
  2012 //-------------------------------------------------
  1941 
  2013 
  1942 //
  2014 //
  1943 eap_status_e eap_am_type_gsmsim_symbian_c::cancel_SIM_kc_sres_query()
  2015 EAP_FUNC_EXPORT eap_status_e eap_am_type_gsmsim_symbian_c::cancel_SIM_kc_sres_query()
  1944 {
  2016 {
  1945 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  2017 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1946 		
  2018 		
  1947 #if defined (USE_EAP_GSMSIM_INTERFACE) && !defined(__WINS__)
  2019 #if defined (USE_EAP_GSMSIM_INTERFACE) && !defined(__WINS__)
  1948 	if (m_is_client == true)
  2020 	if (m_is_client == true)
  2072 	
  2144 	
  2073 	// Now do the database query
  2145 	// Now do the database query
  2074 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
  2146 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
  2075 	TPtr sqlStatement = buf->Des();
  2147 	TPtr sqlStatement = buf->Des();
  2076 
  2148 
  2077 	_LIT(KSQLQueryRow, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d");
  2149 	_LIT(KSQLQueryRow, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
  2078 	sqlStatement.Format(KSQLQueryRow, &unicodeString, &KSimTableName, 
  2150 	sqlStatement.Format(
  2079 		&KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type);
  2151 		KSQLQueryRow,
       
  2152 		&unicodeString,
       
  2153 		&KSimTableName, 
       
  2154 		&KServiceType,
       
  2155 		m_index_type,
       
  2156 		&KServiceIndex,
       
  2157 		m_index,
       
  2158 		&KTunnelingTypeVendorId,
       
  2159 		m_tunneling_type.get_vendor_id(),
       
  2160 		&KTunnelingType, 
       
  2161 		m_tunneling_type.get_vendor_type());
  2080 	
  2162 	
  2081 	RDbView view;
  2163 	RDbView view;
  2082 	User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited));
  2164 	User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited));
  2083 	CleanupClosePushL(view);
  2165 	CleanupClosePushL(view);
  2084 	User::LeaveIfError(view.EvaluateAll());	
  2166 	User::LeaveIfError(view.EvaluateAll());	
  2459 #endif //#if defined(USE_EAP_TYPE_SERVER_GSMSIM)
  2541 #endif //#if defined(USE_EAP_TYPE_SERVER_GSMSIM)
  2460 
  2542 
  2461 //--------------------------------------------------
  2543 //--------------------------------------------------
  2462 
  2544 
  2463 //
  2545 //
  2464 eap_status_e eap_am_type_gsmsim_symbian_c::cancel_imsi_from_username_query()
  2546 EAP_FUNC_EXPORT eap_status_e eap_am_type_gsmsim_symbian_c::cancel_imsi_from_username_query()
  2465 {
  2547 {
  2466 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  2548 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  2467 	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
  2549 	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
  2468 	return EAP_STATUS_RETURN(m_am_tools, eap_status_not_supported);
  2550 	return EAP_STATUS_RETURN(m_am_tools, eap_status_not_supported);
  2469 }
  2551 }
  2626 
  2708 
  2627 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
  2709 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
  2628 	TPtr sqlStatement = buf->Des();
  2710 	TPtr sqlStatement = buf->Des();
  2629 	
  2711 	
  2630 	// Query all the relevant parameters
  2712 	// Query all the relevant parameters
  2631 	_LIT(KSQLQuery, "SELECT %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d");
  2713 	_LIT(KSQLQuery, "SELECT %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
  2632 	sqlStatement.Format(KSQLQuery, &cf_str_EAP_GSMSIM_max_session_validity_time_literal,
  2714 	sqlStatement.Format(
  2633 						&KGSMSIMLastFullAuthTime, &KSimTableName,
  2715 		KSQLQuery,
  2634 						&KServiceType, m_index_type, 
  2716 		&cf_str_EAP_GSMSIM_max_session_validity_time_literal,
  2635 						&KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type);
  2717 		&KGSMSIMLastFullAuthTime,
       
  2718 		&KSimTableName,
       
  2719 		&KServiceType,
       
  2720 		m_index_type, 
       
  2721 		&KServiceIndex,
       
  2722 		m_index,
       
  2723 		&KTunnelingTypeVendorId,
       
  2724 		m_tunneling_type.get_vendor_id(),
       
  2725 		&KTunnelingType, 
       
  2726 		m_tunneling_type.get_vendor_type());
  2636 
  2727 
  2637 	RDbView view;
  2728 	RDbView view;
  2638 	// Evaluate view
  2729 	// Evaluate view
  2639 	User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement)));
  2730 	User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement)));
  2640 	CleanupClosePushL(view);
  2731 	CleanupClosePushL(view);
  2748 
  2839 
  2749 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
  2840 	HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength);
  2750 	TPtr sqlStatement = buf->Des();
  2841 	TPtr sqlStatement = buf->Des();
  2751 	
  2842 	
  2752 	// Query all the relevant parameters
  2843 	// Query all the relevant parameters
  2753 	_LIT(KSQLQuery, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d");
  2844 	_LIT(KSQLQuery, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d");
  2754 	sqlStatement.Format(KSQLQuery, &KGSMSIMLastFullAuthTime, &KSimTableName,
  2845 	sqlStatement.Format(
  2755 						&KServiceType, m_index_type, 
  2846 		KSQLQuery,
  2756 						&KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type);
  2847 		&KGSMSIMLastFullAuthTime,
       
  2848 		&KSimTableName,
       
  2849 		&KServiceType,
       
  2850 		m_index_type, 
       
  2851 		&KServiceIndex,
       
  2852 		m_index,
       
  2853 		&KTunnelingTypeVendorId,
       
  2854 		m_tunneling_type.get_vendor_id(),
       
  2855 		&KTunnelingType, 
       
  2856 		m_tunneling_type.get_vendor_type());
  2757 
  2857 
  2758 	RDbView view;
  2858 	RDbView view;
  2759 	// Evaluate view
  2859 	// Evaluate view
  2760 	User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited));
  2860 	User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited));
  2761 	CleanupClosePushL(view);
  2861 	CleanupClosePushL(view);