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); |
288 |
278 |
289 // Form the insertion command |
279 // Form the insertion command |
290 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
280 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
291 TPtr sqlStatement = buf->Des(); |
281 TPtr sqlStatement = buf->Des(); |
292 |
282 |
293 _LIT(KSQLInsert, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
283 _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, |
284 sqlStatement.Format( |
295 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
285 KSQLInsert, |
|
286 &KXKey, |
|
287 &KK_aut, |
|
288 &KK_encr, |
|
289 &KReauthCounter, |
|
290 &KSimTableName, |
|
291 &KServiceType, |
|
292 m_index_type, |
|
293 &KServiceIndex, |
|
294 m_index, |
|
295 &KTunnelingTypeVendorId, |
|
296 m_tunneling_type.get_vendor_id(), |
|
297 &KTunnelingType, |
|
298 m_tunneling_type.get_vendor_type()); |
296 |
299 |
297 // Evaluate view |
300 // Evaluate view |
298 RDbView view; |
301 RDbView view; |
299 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
302 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
300 CleanupClosePushL(view); |
303 CleanupClosePushL(view); |
425 |
428 |
426 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
429 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
427 TPtr sqlStatement = buf->Des(); |
430 TPtr sqlStatement = buf->Des(); |
428 |
431 |
429 // Form the query |
432 // Form the query |
430 _LIT(KSQLQuery, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
433 _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, |
434 sqlStatement.Format( |
432 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
435 KSQLQuery, |
|
436 &KXKey, |
|
437 &KK_aut, |
|
438 &KK_encr, |
|
439 &KReauthCounter, |
|
440 &KSimTableName, |
|
441 &KServiceType, |
|
442 m_index_type, |
|
443 &KServiceIndex, |
|
444 m_index, |
|
445 &KTunnelingTypeVendorId, |
|
446 m_tunneling_type.get_vendor_id(), |
|
447 &KTunnelingType, |
|
448 m_tunneling_type.get_vendor_type()); |
433 |
449 |
434 RDbView view; |
450 RDbView view; |
435 // Evaluate view |
451 // Evaluate view |
436 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
452 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
437 CleanupClosePushL(view); |
453 CleanupClosePushL(view); |
531 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
547 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
532 |
548 |
533 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
549 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
534 TPtr sqlStatement = buf->Des(); |
550 TPtr sqlStatement = buf->Des(); |
535 |
551 |
536 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
552 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
537 sqlStatement.Format(KSQLInsert, &KReauthCounter, &KSimTableName, |
553 sqlStatement.Format( |
538 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
554 KSQLInsert, |
|
555 &KReauthCounter, |
|
556 &KSimTableName, |
|
557 &KServiceType, |
|
558 m_index_type, |
|
559 &KServiceIndex, |
|
560 m_index, |
|
561 &KTunnelingTypeVendorId, |
|
562 m_tunneling_type.get_vendor_id(), |
|
563 &KTunnelingType, |
|
564 m_tunneling_type.get_vendor_type()); |
539 |
565 |
540 // Evaluate view |
566 // Evaluate view |
541 RDbView view; |
567 RDbView view; |
542 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
568 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
543 CleanupClosePushL(view); |
569 CleanupClosePushL(view); |
902 |
928 |
903 // Form the insertion command |
929 // Form the insertion command |
904 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
930 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
905 TPtr sqlStatement = buf->Des(); |
931 TPtr sqlStatement = buf->Des(); |
906 |
932 |
907 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
933 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
908 sqlStatement.Format(KSQLInsert, &KPseudonymId, &KSimTableName, |
934 sqlStatement.Format( |
909 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
935 KSQLInsert, |
|
936 &KPseudonymId, |
|
937 &KSimTableName, |
|
938 &KServiceType, |
|
939 m_index_type, |
|
940 &KServiceIndex, |
|
941 m_index, |
|
942 &KTunnelingTypeVendorId, |
|
943 m_tunneling_type.get_vendor_id(), |
|
944 &KTunnelingType, |
|
945 m_tunneling_type.get_vendor_type()); |
910 |
946 |
911 // Evaluate view |
947 // Evaluate view |
912 RDbView view; |
948 RDbView view; |
913 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
949 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
914 CleanupClosePushL(view); |
950 CleanupClosePushL(view); |
999 |
1035 |
1000 // Form the insertion command |
1036 // Form the insertion command |
1001 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
1037 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
1002 TPtr sqlStatement = buf->Des(); |
1038 TPtr sqlStatement = buf->Des(); |
1003 |
1039 |
1004 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
1040 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
1005 sqlStatement.Format(KSQLInsert, &KReauthId, &KSimTableName, |
1041 sqlStatement.Format( |
1006 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
1042 KSQLInsert, |
|
1043 &KReauthId, |
|
1044 &KSimTableName, |
|
1045 &KServiceType, |
|
1046 m_index_type, |
|
1047 &KServiceIndex, |
|
1048 m_index, |
|
1049 &KTunnelingTypeVendorId, |
|
1050 m_tunneling_type.get_vendor_id(), |
|
1051 &KTunnelingType, |
|
1052 m_tunneling_type.get_vendor_type()); |
1007 |
1053 |
1008 // Evaluate view |
1054 // Evaluate view |
1009 RDbView view; |
1055 RDbView view; |
1010 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
1056 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
1011 CleanupClosePushL(view); |
1057 CleanupClosePushL(view); |
1091 |
1137 |
1092 // Form the insertion command |
1138 // Form the insertion command |
1093 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
1139 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
1094 TPtr sqlStatement = buf->Des(); |
1140 TPtr sqlStatement = buf->Des(); |
1095 |
1141 |
1096 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
1142 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
1097 sqlStatement.Format(KSQLInsert, &KPreviousIMSI, &KSimTableName, |
1143 sqlStatement.Format( |
1098 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
1144 KSQLInsert, |
|
1145 &KPreviousIMSI, |
|
1146 &KSimTableName, |
|
1147 &KServiceType, |
|
1148 m_index_type, |
|
1149 &KServiceIndex, |
|
1150 m_index, |
|
1151 &KTunnelingTypeVendorId, |
|
1152 m_tunneling_type.get_vendor_id(), |
|
1153 &KTunnelingType, |
|
1154 m_tunneling_type.get_vendor_type()); |
|
1155 |
1099 // Evaluate view |
1156 // Evaluate view |
1100 RDbView view; |
1157 RDbView view; |
1101 |
1158 |
1102 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
1159 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
1103 CleanupClosePushL(view); |
1160 CleanupClosePushL(view); |
1215 m_stored_reauth_id.reset(); |
1272 m_stored_reauth_id.reset(); |
1216 m_previous_imsi.reset(); |
1273 m_previous_imsi.reset(); |
1217 |
1274 |
1218 // Query all the relevant parameters |
1275 // Query all the relevant parameters |
1219 |
1276 |
1220 _LIT(KSQLQuery, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
1277 _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, |
1278 sqlStatement.Format( |
1222 &KPreviousIMSI, &KSimTableName, |
1279 KSQLQuery, |
1223 &KServiceType, m_index_type, |
1280 &KReauthId, |
1224 &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
1281 &KReauthCounter, |
|
1282 &KPseudonymId, |
|
1283 &KPreviousIMSI, |
|
1284 &KSimTableName, |
|
1285 &KServiceType, |
|
1286 m_index_type, |
|
1287 &KServiceIndex, |
|
1288 m_index, |
|
1289 &KTunnelingTypeVendorId, |
|
1290 m_tunneling_type.get_vendor_id(), |
|
1291 &KTunnelingType, |
|
1292 m_tunneling_type.get_vendor_type()); |
1225 |
1293 |
1226 RDbView view; |
1294 RDbView view; |
1227 // Evaluate view |
1295 // Evaluate view |
1228 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
1296 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
1229 CleanupClosePushL(view); |
1297 CleanupClosePushL(view); |
2072 |
2140 |
2073 // Now do the database query |
2141 // Now do the database query |
2074 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
2142 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
2075 TPtr sqlStatement = buf->Des(); |
2143 TPtr sqlStatement = buf->Des(); |
2076 |
2144 |
2077 _LIT(KSQLQueryRow, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
2145 _LIT(KSQLQueryRow, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
2078 sqlStatement.Format(KSQLQueryRow, &unicodeString, &KSimTableName, |
2146 sqlStatement.Format( |
2079 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
2147 KSQLQueryRow, |
|
2148 &unicodeString, |
|
2149 &KSimTableName, |
|
2150 &KServiceType, |
|
2151 m_index_type, |
|
2152 &KServiceIndex, |
|
2153 m_index, |
|
2154 &KTunnelingTypeVendorId, |
|
2155 m_tunneling_type.get_vendor_id(), |
|
2156 &KTunnelingType, |
|
2157 m_tunneling_type.get_vendor_type()); |
2080 |
2158 |
2081 RDbView view; |
2159 RDbView view; |
2082 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
2160 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
2083 CleanupClosePushL(view); |
2161 CleanupClosePushL(view); |
2084 User::LeaveIfError(view.EvaluateAll()); |
2162 User::LeaveIfError(view.EvaluateAll()); |
2626 |
2704 |
2627 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
2705 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
2628 TPtr sqlStatement = buf->Des(); |
2706 TPtr sqlStatement = buf->Des(); |
2629 |
2707 |
2630 // Query all the relevant parameters |
2708 // Query all the relevant parameters |
2631 _LIT(KSQLQuery, "SELECT %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
2709 _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, |
2710 sqlStatement.Format( |
2633 &KGSMSIMLastFullAuthTime, &KSimTableName, |
2711 KSQLQuery, |
2634 &KServiceType, m_index_type, |
2712 &cf_str_EAP_GSMSIM_max_session_validity_time_literal, |
2635 &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
2713 &KGSMSIMLastFullAuthTime, |
|
2714 &KSimTableName, |
|
2715 &KServiceType, |
|
2716 m_index_type, |
|
2717 &KServiceIndex, |
|
2718 m_index, |
|
2719 &KTunnelingTypeVendorId, |
|
2720 m_tunneling_type.get_vendor_id(), |
|
2721 &KTunnelingType, |
|
2722 m_tunneling_type.get_vendor_type()); |
2636 |
2723 |
2637 RDbView view; |
2724 RDbView view; |
2638 // Evaluate view |
2725 // Evaluate view |
2639 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
2726 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
2640 CleanupClosePushL(view); |
2727 CleanupClosePushL(view); |
2748 |
2835 |
2749 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
2836 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
2750 TPtr sqlStatement = buf->Des(); |
2837 TPtr sqlStatement = buf->Des(); |
2751 |
2838 |
2752 // Query all the relevant parameters |
2839 // Query all the relevant parameters |
2753 _LIT(KSQLQuery, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
2840 _LIT(KSQLQuery, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
2754 sqlStatement.Format(KSQLQuery, &KGSMSIMLastFullAuthTime, &KSimTableName, |
2841 sqlStatement.Format( |
2755 &KServiceType, m_index_type, |
2842 KSQLQuery, |
2756 &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
2843 &KGSMSIMLastFullAuthTime, |
|
2844 &KSimTableName, |
|
2845 &KServiceType, |
|
2846 m_index_type, |
|
2847 &KServiceIndex, |
|
2848 m_index, |
|
2849 &KTunnelingTypeVendorId, |
|
2850 m_tunneling_type.get_vendor_id(), |
|
2851 &KTunnelingType, |
|
2852 m_tunneling_type.get_vendor_type()); |
2757 |
2853 |
2758 RDbView view; |
2854 RDbView view; |
2759 // Evaluate view |
2855 // Evaluate view |
2760 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
2856 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
2761 CleanupClosePushL(view); |
2857 CleanupClosePushL(view); |