eapol/eapol_framework/eapol_symbian/am/common/symbian/eap_am_tools_symbian.cpp
changeset 52 c23bdf5a328a
parent 39 fe6b6762fccd
equal deleted inserted replaced
51:e863583e6720 52:c23bdf5a328a
    14 * Description:  Tools for common code to run on Symbian.
    14 * Description:  Tools for common code to run on Symbian.
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 /*
    18 /*
    19 * %version: 36 %
    19 * %version: 39 %
    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
    83 	, iLastTime(0ul)
    83 	, iLastTime(0ul)
    84 	, m_logfile_open(false)	
    84 	, m_logfile_open(false)	
    85 {
    85 {
    86 	EAP_TRACE_BEGIN(this, TRACE_FLAGS_DEFAULT);
    86 	EAP_TRACE_BEGIN(this, TRACE_FLAGS_DEFAULT);
    87 
    87 
    88 #if defined(USE_EAP_HARDWARE_TRACE)
    88 	set_default_trace_mask();
    89 	set_trace_mask(
       
    90 		TRACE_FLAGS_ALWAYS
       
    91 		| TRACE_FLAGS_ERROR
       
    92 		| eap_am_tools_c::eap_trace_mask_debug
       
    93 		| EAP_TRACE_FLAGS_MESSAGE_DATA
       
    94 		| TRACE_FLAGS_TIMER
       
    95 		| TRACE_FLAGS_TIMER_QUEUE);
       
    96 #endif //#if defined(USE_EAP_HARDWARE_TRACE)
       
    97 
    89 
    98 	const u8_t DEFAULT_PREFIX[] = "EAPOL";
    90 	const u8_t DEFAULT_PREFIX[] = "EAPOL";
    99 
    91 
   100 	eap_status_e status = m_prefix_string.set_copy_of_buffer(DEFAULT_PREFIX, sizeof(DEFAULT_PREFIX)-1ul);;
    92 	eap_status_e status = m_prefix_string.set_copy_of_buffer(DEFAULT_PREFIX, sizeof(DEFAULT_PREFIX)-1ul);;
   101 	if (status != eap_status_ok)
    93 	if (status != eap_status_ok)
   164 }
   156 }
   165 
   157 
   166 //--------------------------------------------------
   158 //--------------------------------------------------
   167 
   159 
   168 //
   160 //
   169 EAP_FUNC_EXPORT void eap_am_tools_symbian_c::set_use_eap_milli_second_timer(
   161 void eap_am_tools_symbian_c::set_default_trace_mask()
   170 	const bool use_eap_millisecond_timer)
   162 {
   171 {
       
   172 	m_timer_queue.set_use_eap_milli_second_timer(use_eap_millisecond_timer);
       
   173 }
       
   174 
       
   175 //--------------------------------------------------
       
   176 
       
   177 //
       
   178 EAP_FUNC_EXPORT bool eap_am_tools_symbian_c::get_use_eap_milli_second_timer()
       
   179 {
       
   180 	return m_timer_queue.get_use_eap_milli_second_timer();
       
   181 }
       
   182 
       
   183 //--------------------------------------------------
       
   184 
       
   185 //
       
   186 EAP_FUNC_EXPORT eap_status_e eap_am_tools_symbian_c::configure()
       
   187 {
       
   188 	EAP_TRACE_BEGIN(this, TRACE_FLAGS_DEFAULT);
       
   189 
       
   190 	EAP_TRACE_DEBUG(
       
   191 		this,
       
   192 		TRACE_FLAGS_DEFAULT,
       
   193 		(EAPL("eap_am_tools_symbian_c::configure()\n")));
       
   194 
       
   195 	EAP_TRACE_RETURN_STRING(this, "returns: eap_am_tools_symbian_c::configure()");
       
   196 
       
   197 	if (m_configure_called == true)
       
   198 	{
       
   199 		return EAP_STATUS_RETURN(this, eap_status_ok);
       
   200 	}
       
   201 
   163 
   202 #if defined(USE_EAP_HARDWARE_TRACE)
   164 #if defined(USE_EAP_HARDWARE_TRACE)
   203 	set_trace_mask(
   165 	set_trace_mask(
   204 		TRACE_FLAGS_ALWAYS
   166 		TRACE_FLAGS_ALWAYS
   205 		| TRACE_FLAGS_ERROR
   167 		| TRACE_FLAGS_ERROR
   206 		| eap_am_tools_c::eap_trace_mask_debug
   168 		| eap_am_tools_c::eap_trace_mask_debug
   207 		| EAP_TRACE_FLAGS_MESSAGE_DATA
   169 		/* | EAP_TRACE_FLAGS_MESSAGE_DATA */
   208 		| TRACE_FLAGS_TIMER
   170 		| TRACE_FLAGS_TIMER
   209 		| TRACE_FLAGS_TIMER_QUEUE);
   171 		| TRACE_FLAGS_TIMER_QUEUE);
   210 #endif //#if defined(USE_EAP_HARDWARE_TRACE)
   172 #endif //#if defined(USE_EAP_HARDWARE_TRACE)
       
   173 
       
   174 }
       
   175 
       
   176 //--------------------------------------------------
       
   177 
       
   178 //
       
   179 EAP_FUNC_EXPORT void eap_am_tools_symbian_c::set_use_eap_milli_second_timer(
       
   180 	const bool use_eap_millisecond_timer)
       
   181 {
       
   182 	m_timer_queue.set_use_eap_milli_second_timer(use_eap_millisecond_timer);
       
   183 }
       
   184 
       
   185 //--------------------------------------------------
       
   186 
       
   187 //
       
   188 EAP_FUNC_EXPORT bool eap_am_tools_symbian_c::get_use_eap_milli_second_timer()
       
   189 {
       
   190 	return m_timer_queue.get_use_eap_milli_second_timer();
       
   191 }
       
   192 
       
   193 //--------------------------------------------------
       
   194 
       
   195 //
       
   196 EAP_FUNC_EXPORT eap_status_e eap_am_tools_symbian_c::configure()
       
   197 {
       
   198 	EAP_TRACE_BEGIN(this, TRACE_FLAGS_DEFAULT);
       
   199 
       
   200 	EAP_TRACE_DEBUG(
       
   201 		this,
       
   202 		TRACE_FLAGS_DEFAULT,
       
   203 		(EAPL("eap_am_tools_symbian_c::configure()\n")));
       
   204 
       
   205 	EAP_TRACE_RETURN_STRING(this, "returns: eap_am_tools_symbian_c::configure()");
       
   206 
       
   207 	if (m_configure_called == true)
       
   208 	{
       
   209 		return EAP_STATUS_RETURN(this, eap_status_ok);
       
   210 	}
       
   211 
       
   212 	set_default_trace_mask();
   211 
   213 
   212 	m_start_ticks = get_clock_ticks();
   214 	m_start_ticks = get_clock_ticks();
   213 	iLastTime = m_start_ticks;
   215 	iLastTime = m_start_ticks;
   214 
   216 
   215 	eap_status_e status = m_crypto.configure();
   217 	eap_status_e status = m_crypto.configure();
  1035 		TRACE_FLAGS_DEFAULT,
  1037 		TRACE_FLAGS_DEFAULT,
  1036 		(EAPL("eap_status_e eap_am_tools_symbian_c::convert_am_error_to_eapol_error(): error=%d\n"),
  1038 		(EAPL("eap_status_e eap_am_tools_symbian_c::convert_am_error_to_eapol_error(): error=%d\n"),
  1037 		aErr));
  1039 		aErr));
  1038 
  1040 
  1039 	eap_status_e status;
  1041 	eap_status_e status;
       
  1042 
  1040 	switch (aErr)
  1043 	switch (aErr)
  1041 	{
  1044 	{
  1042 	case KErrNone:
  1045 	case KErrNone:
  1043 		status = eap_status_ok;
  1046 		status = eap_status_ok;
  1044 		break;
  1047 		break;
  1104 	case KErrHardwareNotAvailable:
  1107 	case KErrHardwareNotAvailable:
  1105 	default:
  1108 	default:
  1106 		status = eap_status_process_general_error;
  1109 		status = eap_status_process_general_error;
  1107 		break;		
  1110 		break;		
  1108 	}
  1111 	}
  1109 	return status;
  1112 
  1110 }
       
  1111 
       
  1112 //--------------------------------------------------
       
  1113 
       
  1114 EAP_FUNC_EXPORT i32_t eap_am_tools_symbian_c::convert_eapol_error_to_am_error(eap_status_e aErr)
       
  1115 {
       
  1116 	EAP_TRACE_DEBUG(
  1113 	EAP_TRACE_DEBUG(
  1117 		this,
  1114 		this,
  1118 		TRACE_FLAGS_DEFAULT,
  1115 		TRACE_FLAGS_DEFAULT,
  1119 		(EAPL("eap_am_tools_symbian_c::convert_eapol_error_to_am_error(): error=%d\n"),
  1116 		(EAPL("eap_status_e eap_am_tools_symbian_c::convert_am_error_to_eapol_error(): status=%d\n"),
  1120 		aErr));
  1117 		aErr));
  1121 
  1118 
  1122 	TInt status;
  1119 	return EAP_STATUS_RETURN(this, status);
  1123 	switch (aErr)
  1120 }
       
  1121 
       
  1122 //--------------------------------------------------
       
  1123 
       
  1124 EAP_FUNC_EXPORT i32_t eap_am_tools_symbian_c::convert_eapol_error_to_am_error(eap_status_e status)
       
  1125 {
       
  1126 	EAP_TRACE_DEBUG(
       
  1127 		this,
       
  1128 		TRACE_FLAGS_DEFAULT,
       
  1129 		(EAPL("eap_am_tools_symbian_c::convert_eapol_error_to_am_error(): status=%d\n"),
       
  1130 		status));
       
  1131 
       
  1132 	TInt error;
       
  1133 
       
  1134 	switch (status)
  1124 	{
  1135 	{
  1125 	case eap_status_ok: 
  1136 	case eap_status_ok: 
  1126 	case eap_status_success:
  1137 	case eap_status_success:
  1127 		status = KErrNone;
  1138 		error = KErrNone;
  1128 		break;
  1139 		break;
  1129 	
  1140 	
  1130 	case eap_status_allocation_error: 
  1141 	case eap_status_allocation_error: 
  1131 		status = KErrNoMemory;
  1142 		error = KErrNoMemory;
  1132 		break;
  1143 		break;
  1133 
  1144 
  1134 	case eap_status_not_supported: 
  1145 	case eap_status_not_supported: 
  1135 		status = KErrNotSupported;
  1146 		error = KErrNotSupported;
  1136 		break;
  1147 		break;
  1137 
  1148 
  1138 
  1149 
  1139 	case eap_status_illegal_handle:
  1150 	case eap_status_illegal_handle:
  1140 		status = KErrBadHandle;
  1151 		error = KErrBadHandle;
  1141 		break;
  1152 		break;
  1142 
  1153 
  1143 	case eap_status_pending_request:
  1154 	case eap_status_pending_request:
  1144 		status = KErrCompletion;
  1155 		error = KErrCompletion;
  1145 		break;
  1156 		break;
  1146 
  1157 
  1147 	case eap_status_not_found:
  1158 	case eap_status_not_found:
  1148 	case eap_status_illegal_configure_field:
  1159 	case eap_status_illegal_configure_field:
  1149 		status = KErrNotFound;
  1160 		error = KErrNotFound;
  1150 		break;
  1161 		break;
  1151 
  1162 
  1152 	case eap_status_completed_request:
  1163 	case eap_status_completed_request:
  1153 	case eap_status_drop_packet_quietly:	
  1164 	case eap_status_drop_packet_quietly:	
  1154 	case eap_status_process_general_error: 
  1165 	case eap_status_process_general_error: 
  1199 	case eap_status_timed_out:
  1210 	case eap_status_timed_out:
  1200 	case eap_status_wrong_eap_subtype:
  1211 	case eap_status_wrong_eap_subtype:
  1201 	case eap_status_exit_test:
  1212 	case eap_status_exit_test:
  1202 	case eap_status_no_matching_protocol_version:
  1213 	case eap_status_no_matching_protocol_version:
  1203 	default:
  1214 	default:
  1204 		status = KErrGeneral;
  1215 		error = KErrGeneral;
  1205 		break;	
  1216 		break;	
  1206 	}
  1217 	}
  1207 	
  1218 	
  1208 	return status;
  1219 	EAP_TRACE_DEBUG(
       
  1220 		this,
       
  1221 		TRACE_FLAGS_DEFAULT,
       
  1222 		(EAPL("eap_am_tools_symbian_c::convert_eapol_error_to_am_error(): error=%d (KErrGeneral=%d)\n"),
       
  1223 		error,
       
  1224 		KErrGeneral));
       
  1225 
       
  1226 	return error;
  1209 }
  1227 }
  1210 
  1228 
  1211 //--------------------------------------------------
  1229 //--------------------------------------------------
  1212 
  1230 
  1213 EAP_FUNC_EXPORT eap_status_e eap_am_tools_symbian_c::begin_db_transaction(RDbNamedDatabase& aDatabase)
  1231 EAP_FUNC_EXPORT eap_status_e eap_am_tools_symbian_c::begin_db_transaction(RDbNamedDatabase& aDatabase)
  1579 
  1597 
  1580 //--------------------------------------------------
  1598 //--------------------------------------------------
  1581 //--------------------------------------------------
  1599 //--------------------------------------------------
  1582 //--------------------------------------------------
  1600 //--------------------------------------------------
  1583 
  1601 
  1584 EAP_FUNC_EXPORT_INTERFACE abs_eap_am_tools_c * abs_eap_am_tools_c::new_abs_eap_am_tools_c()
  1602 EAP_FUNC_EXPORT abs_eap_am_tools_c * abs_eap_am_tools_c::new_abs_eap_am_tools_c()
  1585 {
  1603 {
  1586     EAP_TRACE_DEBUG_SYMBIAN((_L("abs_eap_am_tools_c::new_abs_eap_am_tools_c()")));
  1604     EAP_TRACE_DEBUG_SYMBIAN((_L("abs_eap_am_tools_c::new_abs_eap_am_tools_c()")));
  1587 
  1605 
  1588 	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: abs_eap_am_tools_c::new_abs_eap_am_tools_c()"));
  1606 	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: abs_eap_am_tools_c::new_abs_eap_am_tools_c()"));
  1589 
  1607 
  1611 	return am_tools;
  1629 	return am_tools;
  1612 }
  1630 }
  1613 
  1631 
  1614 //--------------------------------------------------
  1632 //--------------------------------------------------
  1615 
  1633 
  1616 EAP_FUNC_EXPORT_INTERFACE void abs_eap_am_tools_c::delete_abs_eap_am_tools_c(abs_eap_am_tools_c * const am_tools)
  1634 EAP_FUNC_EXPORT void abs_eap_am_tools_c::delete_abs_eap_am_tools_c(abs_eap_am_tools_c * const am_tools)
  1617 {
  1635 {
  1618     EAP_TRACE_DEBUG_SYMBIAN((_L("abs_eap_am_tools_c::delete_abs_eap_am_tools_c()")));
  1636     EAP_TRACE_DEBUG_SYMBIAN((_L("abs_eap_am_tools_c::delete_abs_eap_am_tools_c()")));
  1619 
  1637 
  1620 	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: abs_eap_am_tools_c::delete_abs_eap_am_tools_c()"));
  1638 	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: abs_eap_am_tools_c::delete_abs_eap_am_tools_c()"));
  1621 
  1639