34 #include "eap_am_tools_symbian.h" |
34 #include "eap_am_tools_symbian.h" |
35 #include "eap_state_notification.h" |
35 #include "eap_state_notification.h" |
36 #include "EapAkaDbDefaults.h" |
36 #include "EapAkaDbDefaults.h" |
37 #include "EapAkaDbParameterNames.h" |
37 #include "EapAkaDbParameterNames.h" |
38 #include "EapAkaDbUtils.h" |
38 #include "EapAkaDbUtils.h" |
39 #include "eap_am_trace_symbian.h" |
39 #include "EapTraceSymbian.h" |
40 |
40 |
41 #include <d32dbms.h> // For DBMS |
41 #include <d32dbms.h> // For DBMS |
42 #include <s32strm.h> // For RReadStream |
42 #include <s32strm.h> // For RReadStream |
43 |
43 |
44 #if defined (USE_EAP_TYPE_SERVER_AKA) |
44 #if defined (USE_EAP_TYPE_SERVER_AKA) |
152 , m_AUTN(tools) |
152 , m_AUTN(tools) |
153 , m_max_session_time(0) |
153 , m_max_session_time(0) |
154 { |
154 { |
155 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
155 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
156 |
156 |
157 #ifdef USE_EAP_EXPANDED_TYPES |
|
158 |
|
159 m_tunneling_vendor_type = m_tunneling_type.get_vendor_type(); |
|
160 |
|
161 #else |
|
162 |
|
163 m_tunneling_vendor_type = static_cast<TUint>(m_tunneling_type); |
|
164 |
|
165 #endif //#ifdef USE_EAP_EXPANDED_TYPES |
|
166 |
|
167 if (receive_network_id != 0 |
157 if (receive_network_id != 0 |
168 && receive_network_id->get_is_valid_data() == true) |
158 && receive_network_id->get_is_valid_data() == true) |
169 { |
159 { |
170 eap_status_e status = m_receive_network_id.set_copy_of_network_id( |
160 eap_status_e status = m_receive_network_id.set_copy_of_network_id( |
171 receive_network_id); |
161 receive_network_id); |
580 |
570 |
581 // Form the insertion command |
571 // Form the insertion command |
582 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
572 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
583 TPtr sqlStatement = buf->Des(); |
573 TPtr sqlStatement = buf->Des(); |
584 |
574 |
585 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
575 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
586 sqlStatement.Format(KSQLInsert, &KPseudonymId, &KAkaTableName, |
576 sqlStatement.Format( |
587 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
577 KSQLInsert, |
|
578 &KPseudonymId, |
|
579 &KAkaTableName, |
|
580 &KServiceType, |
|
581 m_index_type, |
|
582 &KServiceIndex, |
|
583 m_index, |
|
584 &KTunnelingTypeVendorId, |
|
585 m_tunneling_type.get_vendor_id(), |
|
586 &KTunnelingType, |
|
587 m_tunneling_type.get_vendor_type()); |
588 |
588 |
589 // Evaluate view |
589 // Evaluate view |
590 RDbView view; |
590 RDbView view; |
591 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
591 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
592 CleanupClosePushL(view); |
592 CleanupClosePushL(view); |
682 |
682 |
683 // Form the insertion command |
683 // Form the insertion command |
684 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
684 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
685 TPtr sqlStatement = buf->Des(); |
685 TPtr sqlStatement = buf->Des(); |
686 |
686 |
687 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
687 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
688 sqlStatement.Format(KSQLInsert, &KReauthId, &KAkaTableName, |
688 sqlStatement.Format( |
689 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
689 KSQLInsert, |
|
690 &KReauthId, |
|
691 &KAkaTableName, |
|
692 &KServiceType, |
|
693 m_index_type, |
|
694 &KServiceIndex, |
|
695 m_index, |
|
696 &KTunnelingTypeVendorId, |
|
697 m_tunneling_type.get_vendor_id(), |
|
698 &KTunnelingType, |
|
699 m_tunneling_type.get_vendor_type()); |
690 |
700 |
691 // Evaluate view |
701 // Evaluate view |
692 RDbView view; |
702 RDbView view; |
693 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
703 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
694 CleanupClosePushL(view); |
704 CleanupClosePushL(view); |
810 |
820 |
811 // Form the insertion command |
821 // Form the insertion command |
812 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
822 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
813 TPtr sqlStatement = buf->Des(); |
823 TPtr sqlStatement = buf->Des(); |
814 |
824 |
815 _LIT(KSQLInsert, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
825 _LIT(KSQLInsert, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
816 sqlStatement.Format(KSQLInsert, &KXKey, &KK_aut, &KK_encr, &KReauthCounter, &KAkaTableName, |
826 sqlStatement.Format( |
817 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
827 KSQLInsert, |
|
828 &KXKey, |
|
829 &KK_aut, |
|
830 &KK_encr, |
|
831 &KReauthCounter, |
|
832 &KAkaTableName, |
|
833 &KServiceType, |
|
834 m_index_type, |
|
835 &KServiceIndex, |
|
836 m_index, |
|
837 &KTunnelingTypeVendorId, |
|
838 m_tunneling_type.get_vendor_id(), |
|
839 &KTunnelingType, |
|
840 m_tunneling_type.get_vendor_type()); |
818 |
841 |
819 // Evaluate view |
842 // Evaluate view |
820 RDbView view; |
843 RDbView view; |
821 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
844 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
822 CleanupClosePushL(view); |
845 CleanupClosePushL(view); |
951 |
974 |
952 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
975 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
953 TPtr sqlStatement = buf->Des(); |
976 TPtr sqlStatement = buf->Des(); |
954 |
977 |
955 // Form the query |
978 // Form the query |
956 _LIT(KSQLQuery, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
979 _LIT(KSQLQuery, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
957 sqlStatement.Format(KSQLQuery, &KXKey, &KK_aut, &KK_encr, &KReauthCounter, &KAkaTableName, |
980 sqlStatement.Format( |
958 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
981 KSQLQuery, |
|
982 &KXKey, |
|
983 &KK_aut, |
|
984 &KK_encr, |
|
985 &KReauthCounter, |
|
986 &KAkaTableName, |
|
987 &KServiceType, |
|
988 m_index_type, |
|
989 &KServiceIndex, |
|
990 m_index, |
|
991 &KTunnelingTypeVendorId, |
|
992 m_tunneling_type.get_vendor_id(), |
|
993 &KTunnelingType, |
|
994 m_tunneling_type.get_vendor_type()); |
959 |
995 |
960 RDbView view; |
996 RDbView view; |
961 // Evaluate view |
997 // Evaluate view |
962 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
998 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
963 CleanupClosePushL(view); |
999 CleanupClosePushL(view); |
1062 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
1098 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
1063 |
1099 |
1064 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
1100 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
1065 TPtr sqlStatement = buf->Des(); |
1101 TPtr sqlStatement = buf->Des(); |
1066 |
1102 |
1067 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
1103 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
1068 sqlStatement.Format(KSQLInsert, &KReauthCounter, &KAkaTableName, |
1104 sqlStatement.Format( |
1069 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
1105 KSQLInsert, |
|
1106 &KReauthCounter, |
|
1107 &KAkaTableName, |
|
1108 &KServiceType, |
|
1109 m_index_type, |
|
1110 &KServiceIndex, |
|
1111 m_index, |
|
1112 &KTunnelingTypeVendorId, |
|
1113 m_tunneling_type.get_vendor_id(), |
|
1114 &KTunnelingType, |
|
1115 m_tunneling_type.get_vendor_type()); |
1070 |
1116 |
1071 // Evaluate view |
1117 // Evaluate view |
1072 RDbView view; |
1118 RDbView view; |
1073 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
1119 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
1074 CleanupClosePushL(view); |
1120 CleanupClosePushL(view); |
1177 automatic_realm->reset(); |
1223 automatic_realm->reset(); |
1178 m_stored_pseudonym.reset(); |
1224 m_stored_pseudonym.reset(); |
1179 m_stored_reauth_id.reset(); |
1225 m_stored_reauth_id.reset(); |
1180 m_previous_imsi.reset(); |
1226 m_previous_imsi.reset(); |
1181 |
1227 |
1182 _LIT(KSQLQuery, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
1228 _LIT(KSQLQuery, "SELECT %S, %S, %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
1183 sqlStatement.Format(KSQLQuery, &KReauthId, &KReauthCounter, &KPseudonymId, |
1229 sqlStatement.Format( |
1184 &KPreviousIMSI, &KAkaTableName, |
1230 KSQLQuery, |
1185 &KServiceType, m_index_type, |
1231 &KReauthId, |
1186 &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
1232 &KReauthCounter, |
|
1233 &KPseudonymId, |
|
1234 &KPreviousIMSI, |
|
1235 &KAkaTableName, |
|
1236 &KServiceType, |
|
1237 m_index_type, |
|
1238 &KServiceIndex, |
|
1239 m_index, |
|
1240 &KTunnelingTypeVendorId, |
|
1241 m_tunneling_type.get_vendor_id(), |
|
1242 &KTunnelingType, |
|
1243 m_tunneling_type.get_vendor_type()); |
1187 |
1244 |
1188 RDbView view; |
1245 RDbView view; |
1189 // Evaluate view |
1246 // Evaluate view |
1190 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
1247 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
1191 CleanupClosePushL(view); |
1248 CleanupClosePushL(view); |
1542 |
1599 |
1543 // Form the insertion command |
1600 // Form the insertion command |
1544 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
1601 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
1545 TPtr sqlStatement = buf->Des(); |
1602 TPtr sqlStatement = buf->Des(); |
1546 |
1603 |
1547 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
1604 _LIT(KSQLInsert, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
1548 sqlStatement.Format(KSQLInsert, &KPreviousIMSI, &KAkaTableName, |
1605 sqlStatement.Format( |
1549 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
1606 KSQLInsert, |
|
1607 &KPreviousIMSI, |
|
1608 &KAkaTableName, |
|
1609 &KServiceType, |
|
1610 m_index_type, |
|
1611 &KServiceIndex, |
|
1612 m_index, |
|
1613 &KTunnelingTypeVendorId, |
|
1614 m_tunneling_type.get_vendor_id(), |
|
1615 &KTunnelingType, |
|
1616 m_tunneling_type.get_vendor_type()); |
1550 |
1617 |
1551 // Evaluate view |
1618 // Evaluate view |
1552 RDbView view; |
1619 RDbView view; |
1553 |
1620 |
1554 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
1621 User::LeaveIfError(view.Prepare(m_database,TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
2816 |
2883 |
2817 // Now do the database query |
2884 // Now do the database query |
2818 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
2885 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
2819 TPtr sqlStatement = buf->Des(); |
2886 TPtr sqlStatement = buf->Des(); |
2820 |
2887 |
2821 _LIT(KSQLQueryRow, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
2888 _LIT(KSQLQueryRow, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
2822 sqlStatement.Format(KSQLQueryRow, &unicodeString, &KAkaTableName, |
2889 sqlStatement.Format( |
2823 &KServiceType, m_index_type, &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
2890 KSQLQueryRow, |
|
2891 &unicodeString, |
|
2892 &KAkaTableName, |
|
2893 &KServiceType, |
|
2894 m_index_type, |
|
2895 &KServiceIndex, |
|
2896 m_index, |
|
2897 &KTunnelingTypeVendorId, |
|
2898 m_tunneling_type.get_vendor_id(), |
|
2899 &KTunnelingType, |
|
2900 m_tunneling_type.get_vendor_type()); |
2824 |
2901 |
2825 RDbView view; |
2902 RDbView view; |
2826 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
2903 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
2827 CleanupClosePushL(view); |
2904 CleanupClosePushL(view); |
2828 User::LeaveIfError(view.EvaluateAll()); |
2905 User::LeaveIfError(view.EvaluateAll()); |
3014 |
3091 |
3015 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
3092 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
3016 TPtr sqlStatement = buf->Des(); |
3093 TPtr sqlStatement = buf->Des(); |
3017 |
3094 |
3018 // Query all the relevant parameters |
3095 // Query all the relevant parameters |
3019 _LIT(KSQLQuery, "SELECT %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
3096 _LIT(KSQLQuery, "SELECT %S, %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
3020 sqlStatement.Format(KSQLQuery, &cf_str_EAP_AKA_max_session_validity_time_literal, |
3097 sqlStatement.Format( |
3021 &KAKALastFullAuthTime, &KAkaTableName, |
3098 KSQLQuery, |
3022 &KServiceType, m_index_type, |
3099 &cf_str_EAP_AKA_max_session_validity_time_literal, |
3023 &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
3100 &KAKALastFullAuthTime, |
|
3101 &KAkaTableName, |
|
3102 &KServiceType, |
|
3103 m_index_type, |
|
3104 &KServiceIndex, |
|
3105 m_index, |
|
3106 &KTunnelingTypeVendorId, |
|
3107 m_tunneling_type.get_vendor_id(), |
|
3108 &KTunnelingType, |
|
3109 m_tunneling_type.get_vendor_type()); |
3024 |
3110 |
3025 RDbView view; |
3111 RDbView view; |
3026 // Evaluate view |
3112 // Evaluate view |
3027 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
3113 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement))); |
3028 CleanupClosePushL(view); |
3114 CleanupClosePushL(view); |
3136 |
3222 |
3137 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
3223 HBufC* buf = HBufC::NewLC(KMaxSqlQueryLength); |
3138 TPtr sqlStatement = buf->Des(); |
3224 TPtr sqlStatement = buf->Des(); |
3139 |
3225 |
3140 // Query all the relevant parameters |
3226 // Query all the relevant parameters |
3141 _LIT(KSQLQuery, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d"); |
3227 _LIT(KSQLQuery, "SELECT %S FROM %S WHERE %S=%d AND %S=%d AND %S=%d AND %S=%d"); |
3142 sqlStatement.Format(KSQLQuery, &KAKALastFullAuthTime, &KAkaTableName, |
3228 sqlStatement.Format( |
3143 &KServiceType, m_index_type, |
3229 KSQLQuery, |
3144 &KServiceIndex, m_index, &KTunnelingType, m_tunneling_vendor_type); |
3230 &KAKALastFullAuthTime, |
|
3231 &KAkaTableName, |
|
3232 &KServiceType, |
|
3233 m_index_type, |
|
3234 &KServiceIndex, |
|
3235 m_index, |
|
3236 &KTunnelingTypeVendorId, |
|
3237 m_tunneling_type.get_vendor_id(), |
|
3238 &KTunnelingType, |
|
3239 m_tunneling_type.get_vendor_type()); |
3145 |
3240 |
3146 RDbView view; |
3241 RDbView view; |
3147 // Evaluate view |
3242 // Evaluate view |
3148 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
3243 User::LeaveIfError(view.Prepare(m_database, TDbQuery(sqlStatement), TDbWindow::EUnlimited)); |
3149 CleanupClosePushL(view); |
3244 CleanupClosePushL(view); |