eapol/eapol_framework/eapol_common/core/eap_core_client_message_if.cpp
changeset 49 43351a4f2da3
parent 36 c98682f98478
equal deleted inserted replaced
47:712b4ffd76bb 49:43351a4f2da3
    14 * Description:  EAP and WLAN authentication protocols.
    14 * Description:  EAP and WLAN authentication protocols.
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 /*
    18 /*
    19 * %version: 34 %
    19 * %version: 37 %
    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
    57 {
    57 {
    58 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
    58 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
    59 
    59 
    60 	EAP_TRACE_DEBUG(
    60 	EAP_TRACE_DEBUG(
    61 		m_am_tools, 
    61 		m_am_tools, 
    62 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
    62 		TRACE_FLAGS_DEFAULT, 
    63 		(EAPL("eap_core_client_message_if_c::~eap_core_client_message_if_c(): this = 0x%08x => 0x%08x.\n"),
    63 		(EAPL("eap_core_client_message_if_c::~eap_core_client_message_if_c(): this = 0x%08x => 0x%08x.\n"),
    64 		this,
    64 		this,
    65 		dynamic_cast<abs_eap_base_timer_c *>(this)));
    65 		dynamic_cast<abs_eap_base_timer_c *>(this)));
    66 
    66 
    67 	EAP_ASSERT(m_shutdown_was_called == true);
    67 	EAP_ASSERT(m_shutdown_was_called == true);
    98 {
    98 {
    99 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
    99 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   100 
   100 
   101 	EAP_TRACE_DEBUG(
   101 	EAP_TRACE_DEBUG(
   102 		m_am_tools, 
   102 		m_am_tools, 
   103 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   103 		TRACE_FLAGS_DEFAULT, 
   104 		(EAPL("eap_core_client_message_if_c::eap_core_client_message_if_c(): this = 0x%08x => 0x%08x.\n"),
   104 		(EAPL("eap_core_client_message_if_c::eap_core_client_message_if_c(): this = 0x%08x => 0x%08x.\n"),
   105 		this,
   105 		this,
   106 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   106 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   107 
   107 
   108 	set_is_valid();
   108 	set_is_valid();
   116 {
   116 {
   117 	// Sends message data composed of Attribute-Value Pairs.
   117 	// Sends message data composed of Attribute-Value Pairs.
   118 
   118 
   119 	EAP_TRACE_DEBUG(
   119 	EAP_TRACE_DEBUG(
   120 		m_am_tools, 
   120 		m_am_tools, 
   121 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   121 		TRACE_FLAGS_DEFAULT, 
   122 		(EAPL("eap_core_client_message_if_c::process_message(): this = 0x%08x => 0x%08x.\n"),
   122 		(EAPL("eap_core_client_message_if_c::process_message(): this = 0x%08x => 0x%08x.\n"),
   123 		this,
   123 		this,
   124 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   124 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   125 
   125 
   126 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::send_message()");
   126 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::send_message()");
   127 
   127 
   128 	EAP_TRACE_DATA_DEBUG(
   128 	EAP_TRACE_DATA_DEBUG(
   129 		m_am_tools,
   129 		m_am_tools,
   130 		EAP_TRACE_FLAGS_NEVER,
   130 		EAP_TRACE_FLAGS_NEVER,
   131 		(EAPL("eap_core_client_message_if_c::send_message()"),
   131 		(EAPL("eap_core_client_message_if_c::send_message()"),
   171 {
   171 {
   172 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   172 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   173 
   173 
   174 	EAP_TRACE_DEBUG(
   174 	EAP_TRACE_DEBUG(
   175 		m_am_tools, 
   175 		m_am_tools, 
   176 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   176 		TRACE_FLAGS_DEFAULT, 
   177 		(EAPL("eap_core_client_message_if_c::reset(): this = 0x%08x => 0x%08x.\n"),
   177 		(EAPL("eap_core_client_message_if_c::reset(): this = 0x%08x => 0x%08x.\n"),
   178 		this,
   178 		this,
   179 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   179 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   180 
   180 
   181 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::reset()");
   181 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::reset()");
   182 
   182 
   183 	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
   183 	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
   184 	return EAP_STATUS_RETURN(m_am_tools, eap_status_ok);
   184 	return EAP_STATUS_RETURN(m_am_tools, eap_status_ok);
   185 }
   185 }
   186 
   186 
   194 {
   194 {
   195 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   195 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   196 
   196 
   197 	EAP_TRACE_DEBUG(
   197 	EAP_TRACE_DEBUG(
   198 		m_am_tools, 
   198 		m_am_tools, 
   199 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   199 		TRACE_FLAGS_DEFAULT, 
   200 		(EAPL("eap_core_client_message_if_c::packet_process(): this = 0x%08x => 0x%08x.\n"),
   200 		(EAPL("eap_core_client_message_if_c::packet_process(): this = 0x%08x => 0x%08x, packet_length=%d.\n"),
   201 		this,
   201 		this,
   202 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   202 		dynamic_cast<abs_eap_base_timer_c *>(this),
   203 
   203 		packet_length));
   204 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::packet_process()");
   204 
       
   205 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::packet_process()");
   205 
   206 
   206 	EAP_ASSERT(m_am_tools->get_global_mutex()->get_is_reserved() == true);
   207 	EAP_ASSERT(m_am_tools->get_global_mutex()->get_is_reserved() == true);
   207 
   208 
   208 	eap_status_e status(eap_status_process_general_error);
   209 	eap_status_e status(eap_status_process_general_error);
       
   210 
       
   211 	EAP_TRACE_DATA_DEBUG(
       
   212 		m_am_tools,
       
   213 		TRACE_FLAGS_DEFAULT,
       
   214 		(EAPL("eap_core_client_message_if_c::packet_process()"),
       
   215 		packet_data->get_header_buffer(packet_data->get_header_buffer_length()),
       
   216 		packet_data->get_header_buffer_length()));
   209 
   217 
   210 	// Creates message data composed of Attribute-Value Pairs.
   218 	// Creates message data composed of Attribute-Value Pairs.
   211 	eap_process_tlv_message_data_c message(m_am_tools);
   219 	eap_process_tlv_message_data_c message(m_am_tools);
   212 
   220 
   213 	if (message.get_is_valid() == false)
   221 	if (message.get_is_valid() == false)
   229 	{
   237 	{
   230 		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
   238 		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
   231 		return EAP_STATUS_RETURN(m_am_tools, status);
   239 		return EAP_STATUS_RETURN(m_am_tools, status);
   232 	}
   240 	}
   233 
   241 
   234 	if (packet_length != packet_data->get_header_buffer_length())
   242 	if (packet_length > packet_data->get_header_buffer_length())
   235 	{
   243 	{
   236 		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
   244 		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
   237 		return EAP_STATUS_RETURN(m_am_tools, eap_status_illegal_parameter);
   245 		return EAP_STATUS_RETURN(m_am_tools, eap_status_illegal_parameter);
   238 	}
   246 	}
   239 
   247 
   240 	status = message.add_parameter_data(
   248 	status = message.add_parameter_data(
   241 		packet_data);
   249 		packet_data,
       
   250 		packet_length);
   242 	if (status != eap_status_ok)
   251 	if (status != eap_status_ok)
   243 	{
   252 	{
   244 		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
   253 		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
   245 		return EAP_STATUS_RETURN(m_am_tools, status);
   254 		return EAP_STATUS_RETURN(m_am_tools, status);
   246 	}
   255 	}
   301 
   310 
   302 	EAP_ASSERT(m_am_tools->get_global_mutex()->get_is_reserved() == true);
   311 	EAP_ASSERT(m_am_tools->get_global_mutex()->get_is_reserved() == true);
   303 
   312 
   304 	EAP_TRACE_DEBUG(
   313 	EAP_TRACE_DEBUG(
   305 		m_am_tools, 
   314 		m_am_tools, 
   306 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   315 		TRACE_FLAGS_DEFAULT, 
   307 		(EAPL("eap_core_client_message_if_c::shutdown(): this = 0x%08x => 0x%08x.\n"),
   316 		(EAPL("eap_core_client_message_if_c::shutdown(): this = 0x%08x => 0x%08x.\n"),
   308 		this,
   317 		this,
   309 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   318 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   310 
   319 
   311 	if (m_shutdown_was_called == true)
   320 	if (m_shutdown_was_called == true)
   334 {
   343 {
   335 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   344 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   336 
   345 
   337 	EAP_TRACE_DEBUG(
   346 	EAP_TRACE_DEBUG(
   338 		m_am_tools, 
   347 		m_am_tools, 
   339 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   348 		TRACE_FLAGS_DEFAULT, 
   340 		(EAPL("eap_core_client_message_if_c::eap_mtu(): this = 0x%08x => 0x%08x.\n"),
   349 		(EAPL("eap_core_client_message_if_c::eap_mtu(): this = 0x%08x => 0x%08x.\n"),
   341 		this,
   350 		this,
   342 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   351 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   343 
   352 
   344 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::eap_mtu()");
   353 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::eap_mtu()");
   345 
   354 
   346 	EAP_ASSERT(m_am_tools->get_global_mutex()->get_is_reserved() == true);
   355 	EAP_ASSERT(m_am_tools->get_global_mutex()->get_is_reserved() == true);
   347 
   356 
   348 	eap_status_e status(eap_status_process_general_error);
   357 	eap_status_e status(eap_status_process_general_error);
   349 
   358 
   394 
   403 
   395 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   404 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   396 
   405 
   397 	EAP_TRACE_DEBUG(
   406 	EAP_TRACE_DEBUG(
   398 		m_am_tools, 
   407 		m_am_tools, 
   399 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   408 		TRACE_FLAGS_DEFAULT, 
   400 		(EAPL("eap_core_client_message_if_c::eap_acknowledge(): this = 0x%08x => 0x%08x.\n"),
   409 		(EAPL("eap_core_client_message_if_c::eap_acknowledge(): this = 0x%08x => 0x%08x.\n"),
   401 		this,
   410 		this,
   402 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   411 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   403 
   412 
   404 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::eap_acknowledge()");
   413 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::eap_acknowledge()");
   405 
   414 
   406 	EAP_ASSERT(m_am_tools->get_global_mutex()->get_is_reserved() == true);
   415 	EAP_ASSERT(m_am_tools->get_global_mutex()->get_is_reserved() == true);
   407 
   416 
   408 	eap_status_e status(eap_status_process_general_error);
   417 	eap_status_e status(eap_status_process_general_error);
   409 
   418 
   463 
   472 
   464 	eap_status_e status(eap_status_process_general_error);
   473 	eap_status_e status(eap_status_process_general_error);
   465 
   474 
   466 	EAP_TRACE_DEBUG(
   475 	EAP_TRACE_DEBUG(
   467 		m_am_tools, 
   476 		m_am_tools, 
   468 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   477 		TRACE_FLAGS_DEFAULT, 
   469 		(EAPL("eap_core_client_message_if_c::send_eap_identity_request(): this = 0x%08x => 0x%08x.\n"),
   478 		(EAPL("eap_core_client_message_if_c::send_eap_identity_request(): this = 0x%08x => 0x%08x.\n"),
   470 		this,
   479 		this,
   471 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   480 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   472 
   481 
   473 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::send_eap_identity_request()");
   482 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::send_eap_identity_request()");
   474 
   483 
   475 	{
   484 	{
   476 		// Creates message data composed of Attribute-Value Pairs.
   485 		// Creates message data composed of Attribute-Value Pairs.
   477 		eap_process_tlv_message_data_c message(m_am_tools);
   486 		eap_process_tlv_message_data_c message(m_am_tools);
   478 
   487 
   521 
   530 
   522 	eap_status_e status(eap_status_process_general_error);
   531 	eap_status_e status(eap_status_process_general_error);
   523 
   532 
   524 	EAP_TRACE_DEBUG(
   533 	EAP_TRACE_DEBUG(
   525 		m_am_tools, 
   534 		m_am_tools, 
   526 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   535 		TRACE_FLAGS_DEFAULT, 
   527 		(EAPL("eap_core_client_message_if_c::set_eap_database_reference_values(): this = 0x%08x => 0x%08x.\n"),
   536 		(EAPL("eap_core_client_message_if_c::set_eap_database_reference_values(): this = 0x%08x => 0x%08x.\n"),
   528 		this,
   537 		this,
   529 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   538 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   530 
   539 
   531 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::set_eap_database_reference_values()");
   540 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::set_eap_database_reference_values()");
   532 
   541 
   533 	{
   542 	{
   534 		// Creates message data composed of Attribute-Value Pairs.
   543 		// Creates message data composed of Attribute-Value Pairs.
   535 		eap_process_tlv_message_data_c message(m_am_tools);
   544 		eap_process_tlv_message_data_c message(m_am_tools);
   536 
   545 
   576 	EAP_UNREFERENCED_PARAMETER(data);
   585 	EAP_UNREFERENCED_PARAMETER(data);
   577 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   586 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   578 
   587 
   579 	EAP_TRACE_DEBUG(
   588 	EAP_TRACE_DEBUG(
   580 		m_am_tools, 
   589 		m_am_tools, 
   581 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   590 		TRACE_FLAGS_DEFAULT, 
   582 		(EAPL("TIMER: [0x%08x]->eap_core_client_message_if_c::")
   591 		(EAPL("TIMER: [0x%08x]->eap_core_client_message_if_c::")
   583 		 EAPL("timer_expired(id 0x%02x, data 0x%08x), %s.\n"),
   592 		 EAPL("timer_expired(id 0x%02x, data 0x%08x), %s.\n"),
   584 		 this,
   593 		 this,
   585 		 id,
   594 		 id,
   586 		 data,
   595 		 data,
   601 	EAP_UNREFERENCED_PARAMETER(data);
   610 	EAP_UNREFERENCED_PARAMETER(data);
   602 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   611 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   603 
   612 
   604 	EAP_TRACE_DEBUG(
   613 	EAP_TRACE_DEBUG(
   605 		m_am_tools, 
   614 		m_am_tools, 
   606 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   615 		TRACE_FLAGS_DEFAULT, 
   607 		(EAPL("TIMER: [0x%08x]->eap_core_client_message_if_c::")
   616 		(EAPL("TIMER: [0x%08x]->eap_core_client_message_if_c::")
   608 		 EAPL("timer_delete_data(id 0x%02x, data 0x%08x).\n"),
   617 		 EAPL("timer_delete_data(id 0x%02x, data 0x%08x).\n"),
   609 		this, id, data));
   618 		this, id, data));
   610 
   619 
   611 	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
   620 	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
   618 {
   627 {
   619 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   628 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   620 
   629 
   621 	EAP_TRACE_DEBUG(
   630 	EAP_TRACE_DEBUG(
   622 		m_am_tools, 
   631 		m_am_tools, 
   623 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   632 		TRACE_FLAGS_DEFAULT, 
   624 		(EAPL("eap_core_client_message_if_c::cancel_all_eap_sessions(): this = 0x%08x => 0x%08x.\n"),
   633 		(EAPL("eap_core_client_message_if_c::cancel_all_eap_sessions(): this = 0x%08x => 0x%08x.\n"),
   625 		this,
   634 		this,
   626 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   635 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   627 
   636 
   628 	eap_status_e status = reset();
   637 	eap_status_e status = reset();
   638 {
   647 {
   639 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   648 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   640 
   649 
   641 	EAP_TRACE_DEBUG(
   650 	EAP_TRACE_DEBUG(
   642 		m_am_tools, 
   651 		m_am_tools, 
   643 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   652 		TRACE_FLAGS_DEFAULT, 
   644 		(EAPL("eap_core_client_message_if_c::create_eap_session(): this = 0x%08x => 0x%08x.\n"),
   653 		(EAPL("eap_core_client_message_if_c::create_eap_session(): this = 0x%08x => 0x%08x.\n"),
   645 		this,
   654 		this,
   646 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   655 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   647 
   656 
   648 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::create_eap_session()");
   657 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::create_eap_session()");
   649 
   658 
   650 	eap_status_e status(eap_status_process_general_error);
   659 	eap_status_e status(eap_status_process_general_error);
   651 
   660 
   652 	{
   661 	{
   653 		// Creates message data composed of Attribute-Value Pairs.
   662 		// Creates message data composed of Attribute-Value Pairs.
   693 {
   702 {
   694 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   703 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   695 
   704 
   696 	EAP_TRACE_DEBUG(
   705 	EAP_TRACE_DEBUG(
   697 		m_am_tools, 
   706 		m_am_tools, 
   698 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   707 		TRACE_FLAGS_DEFAULT, 
   699 		(EAPL("eap_core_client_message_if_c::remove_eap_session(): this = 0x%08x => 0x%08x.\n"),
   708 		(EAPL("eap_core_client_message_if_c::remove_eap_session(): this = 0x%08x => 0x%08x.\n"),
   700 		this,
   709 		this,
   701 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   710 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   702 
   711 
   703 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::remove_eap_session()");
   712 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::remove_eap_session()");
   704 
   713 
   705 	eap_status_e status(eap_status_process_general_error);
   714 	eap_status_e status(eap_status_process_general_error);
   706 
   715 
   707 	{
   716 	{
   708 		// Creates message data composed of Attribute-Value Pairs.
   717 		// Creates message data composed of Attribute-Value Pairs.
   757 {
   766 {
   758 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   767 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   759 
   768 
   760 	EAP_TRACE_DEBUG(
   769 	EAP_TRACE_DEBUG(
   761 		m_am_tools, 
   770 		m_am_tools, 
   762 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   771 		TRACE_FLAGS_DEFAULT, 
   763 		(EAPL("eap_core_client_message_if_c::get_802_11_authentication_mode(): this = 0x%08x => 0x%08x.\n"),
   772 		(EAPL("eap_core_client_message_if_c::get_802_11_authentication_mode(): this = 0x%08x => 0x%08x.\n"),
   764 		this,
   773 		this,
   765 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   774 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   766 
   775 
   767 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::get_802_11_authentication_mode()");
   776 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::get_802_11_authentication_mode()");
   768 
   777 
   769 	eap_status_e status(eap_status_process_general_error);
   778 	eap_status_e status(eap_status_process_general_error);
   770 
   779 
   771 	{
   780 	{
   772 		// Creates message data composed of Attribute-Value Pairs.
   781 		// Creates message data composed of Attribute-Value Pairs.
   832 {
   841 {
   833 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   842 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   834 
   843 
   835 	EAP_TRACE_DEBUG(
   844 	EAP_TRACE_DEBUG(
   836 		m_am_tools, 
   845 		m_am_tools, 
   837 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   846 		TRACE_FLAGS_DEFAULT, 
   838 		(EAPL("eap_core_client_message_if_c::packet_send(): this = 0x%08x => 0x%08x.\n"),
   847 		(EAPL("eap_core_client_message_if_c::packet_send(): this = 0x%08x => 0x%08x.\n"),
   839 		this,
   848 		this,
   840 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   849 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   841 
   850 
   842 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::packet_send()");
   851 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::packet_send()");
   843 
   852 
   844 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   853 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   845 
   854 
   846 	u32_t parameter_index(eap_message_payload_index_first_parameter);
   855 	u32_t parameter_index(eap_message_payload_index_first_parameter);
   847 
   856 
   918 {
   927 {
   919 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   928 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   920 
   929 
   921 	EAP_TRACE_DEBUG(
   930 	EAP_TRACE_DEBUG(
   922 		m_am_tools, 
   931 		m_am_tools, 
   923 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
   932 		TRACE_FLAGS_DEFAULT, 
   924 		(EAPL("eap_core_client_message_if_c::state_notification(): this = 0x%08x => 0x%08x.\n"),
   933 		(EAPL("eap_core_client_message_if_c::state_notification(): this = 0x%08x => 0x%08x.\n"),
   925 		this,
   934 		this,
   926 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   935 		dynamic_cast<abs_eap_base_timer_c *>(this)));
   927 
   936 
   928 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::state_notification()");
   937 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::state_notification()");
   929 
   938 
   930 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   939 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   931 
   940 
   932 	u32_t parameter_index(eap_message_payload_index_first_parameter);
   941 	u32_t parameter_index(eap_message_payload_index_first_parameter);
   933 
   942 
   966 
   975 
   967 eap_status_e eap_core_client_message_if_c::packet_data_crypto_keys(
   976 eap_status_e eap_core_client_message_if_c::packet_data_crypto_keys(
   968 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
   977 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
   969 {
   978 {
   970 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
   979 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
       
   980 
       
   981 	EAP_TRACE_DEBUG(
       
   982 		m_am_tools, 
       
   983 		TRACE_FLAGS_DEFAULT, 
       
   984 		(EAPL("eap_core_client_message_if_c::packet_data_crypto_keys(): this = 0x%08x => 0x%08x.\n"),
       
   985 		this,
       
   986 		dynamic_cast<abs_eap_base_timer_c *>(this)));
       
   987 
       
   988 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::packet_data_crypto_keys()");
   971 
   989 
   972 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   990 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   973 
   991 
   974 	u32_t parameter_index(eap_message_payload_index_first_parameter);
   992 	u32_t parameter_index(eap_message_payload_index_first_parameter);
   975 
   993 
  1033 
  1051 
  1034 eap_status_e eap_core_client_message_if_c::restart_authentication(
  1052 eap_status_e eap_core_client_message_if_c::restart_authentication(
  1035 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
  1053 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
  1036 {
  1054 {
  1037 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1055 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
       
  1056 
       
  1057 	EAP_TRACE_DEBUG(
       
  1058 		m_am_tools, 
       
  1059 		TRACE_FLAGS_DEFAULT, 
       
  1060 		(EAPL("eap_core_client_message_if_c::restart_authentication(): this = 0x%08x => 0x%08x.\n"),
       
  1061 		this,
       
  1062 		dynamic_cast<abs_eap_base_timer_c *>(this)));
       
  1063 
       
  1064 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::restart_authentication()");
  1038 
  1065 
  1039 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1066 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1040 
  1067 
  1041 	u32_t parameter_index(eap_message_payload_index_first_parameter);
  1068 	u32_t parameter_index(eap_message_payload_index_first_parameter);
  1042 
  1069 
  1115 
  1142 
  1116 eap_status_e eap_core_client_message_if_c::new_protected_setup_credentials(
  1143 eap_status_e eap_core_client_message_if_c::new_protected_setup_credentials(
  1117 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
  1144 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
  1118 {
  1145 {
  1119 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1146 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
       
  1147 
       
  1148 	EAP_TRACE_DEBUG(
       
  1149 		m_am_tools, 
       
  1150 		TRACE_FLAGS_DEFAULT, 
       
  1151 		(EAPL("eap_core_client_message_if_c::new_protected_setup_credentials(): this = 0x%08x => 0x%08x.\n"),
       
  1152 		this,
       
  1153 		dynamic_cast<abs_eap_base_timer_c *>(this)));
       
  1154 
       
  1155 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::new_protected_setup_credentials()");
  1120 
  1156 
  1121 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1157 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1122 
  1158 
  1123 	eap_status_e status(eap_status_process_general_error);
  1159 	eap_status_e status(eap_status_process_general_error);
  1124 
  1160 
  1165 eap_status_e eap_core_client_message_if_c::complete_get_802_11_authentication_mode(
  1201 eap_status_e eap_core_client_message_if_c::complete_get_802_11_authentication_mode(
  1166 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
  1202 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
  1167 {
  1203 {
  1168 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1204 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1169 
  1205 
       
  1206 	EAP_TRACE_DEBUG(
       
  1207 		m_am_tools, 
       
  1208 		TRACE_FLAGS_DEFAULT, 
       
  1209 		(EAPL("eap_core_client_message_if_c::complete_get_802_11_authentication_mode(): this = 0x%08x => 0x%08x.\n"),
       
  1210 		this,
       
  1211 		dynamic_cast<abs_eap_base_timer_c *>(this)));
       
  1212 
       
  1213 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::complete_get_802_11_authentication_mode()");
       
  1214 
  1170 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1215 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1171 
  1216 
  1172 	u32_t parameter_index(eap_message_payload_index_first_parameter);
  1217 	u32_t parameter_index(eap_message_payload_index_first_parameter);
  1173 
  1218 
  1174 	eap_process_tlv_message_data_c message_data(m_am_tools);
  1219 	eap_process_tlv_message_data_c message_data(m_am_tools);
  1232 eap_status_e eap_core_client_message_if_c::complete_remove_eap_session(
  1277 eap_status_e eap_core_client_message_if_c::complete_remove_eap_session(
  1233 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
  1278 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
  1234 {
  1279 {
  1235 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1280 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1236 
  1281 
       
  1282 	EAP_TRACE_DEBUG(
       
  1283 		m_am_tools, 
       
  1284 		TRACE_FLAGS_DEFAULT, 
       
  1285 		(EAPL("eap_core_client_message_if_c::complete_remove_eap_session(): this = 0x%08x => 0x%08x.\n"),
       
  1286 		this,
       
  1287 		dynamic_cast<abs_eap_base_timer_c *>(this)));
       
  1288 
       
  1289 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::complete_remove_eap_session()");
       
  1290 
  1237 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1291 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1238 
  1292 
  1239 	u32_t parameter_index(eap_message_payload_index_first_parameter);
  1293 	u32_t parameter_index(eap_message_payload_index_first_parameter);
  1240 
  1294 
  1241 	eap_process_tlv_message_data_c message_data(m_am_tools);
  1295 	eap_process_tlv_message_data_c message_data(m_am_tools);
  1286 	const eap_status_e error_code,
  1340 	const eap_status_e error_code,
  1287 	const eap_tlv_message_type_function_e function)
  1341 	const eap_tlv_message_type_function_e function)
  1288 {
  1342 {
  1289 	eap_status_e status(eap_status_ok);
  1343 	eap_status_e status(eap_status_ok);
  1290 
  1344 
       
  1345 	EAP_TRACE_DEBUG(
       
  1346 		m_am_tools, 
       
  1347 		TRACE_FLAGS_DEFAULT, 
       
  1348 		(EAPL("eap_core_client_message_if_c::process_error_message(): this = 0x%08x => 0x%08x.\n"),
       
  1349 		this,
       
  1350 		dynamic_cast<abs_eap_base_timer_c *>(this)));
       
  1351 
       
  1352 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::process_error_message()");
       
  1353 
  1291 	{
  1354 	{
  1292 		// Creates message data composed of Attribute-Value Pairs.
  1355 		// Creates message data composed of Attribute-Value Pairs.
  1293 		eap_process_tlv_message_data_c message(m_am_tools);
  1356 		eap_process_tlv_message_data_c message(m_am_tools);
  1294 
  1357 
  1295 		if (message.get_is_valid() == false)
  1358 		if (message.get_is_valid() == false)
  1329 //--------------------------------------------------
  1392 //--------------------------------------------------
  1330 
  1393 
  1331 eap_status_e eap_core_client_message_if_c::process_message_type_error(
  1394 eap_status_e eap_core_client_message_if_c::process_message_type_error(
  1332 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
  1395 	EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters)
  1333 {
  1396 {
       
  1397 	EAP_TRACE_DEBUG(
       
  1398 		m_am_tools, 
       
  1399 		TRACE_FLAGS_DEFAULT, 
       
  1400 		(EAPL("eap_core_client_message_if_c::process_message_type_error(): this = 0x%08x => 0x%08x.\n"),
       
  1401 		this,
       
  1402 		dynamic_cast<abs_eap_base_timer_c *>(this)));
       
  1403 
       
  1404 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::process_message_type_error()");
       
  1405 
  1334 	eap_status_e status(eap_status_ok);
  1406 	eap_status_e status(eap_status_ok);
  1335 
  1407 
  1336 	eap_process_tlv_message_data_c message_data(m_am_tools);
  1408 	eap_process_tlv_message_data_c message_data(m_am_tools);
  1337 
  1409 
  1338 	if (message_data.get_is_valid() == false)
  1410 	if (message_data.get_is_valid() == false)
  1367 {
  1439 {
  1368 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1440 	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
  1369 
  1441 
  1370 	EAP_TRACE_DEBUG(
  1442 	EAP_TRACE_DEBUG(
  1371 		m_am_tools, 
  1443 		m_am_tools, 
  1372 		EAP_TRACE_FLAGS_MESSAGE_DATA, 
  1444 		TRACE_FLAGS_DEFAULT, 
  1373 		(EAPL("eap_core_client_message_if_c::send_data(): this = 0x%08x => 0x%08x.\n"),
  1445 		(EAPL("eap_core_client_message_if_c::send_data(): this = 0x%08x => 0x%08x.\n"),
  1374 		this,
  1446 		this,
  1375 		dynamic_cast<abs_eap_base_timer_c *>(this)));
  1447 		dynamic_cast<abs_eap_base_timer_c *>(this)));
  1376 
  1448 
  1377 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, EAP_TRACE_FLAGS_MESSAGE_DATA, "returns: eap_core_client_message_if_c::send_data()");
  1449 	EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_core_client_message_if_c::send_data()");
  1378 
  1450 
  1379 	eap_status_e status(eap_status_process_general_error);
  1451 	eap_status_e status(eap_status_process_general_error);
  1380 
  1452 
  1381 	// Parses message data composed of Attribute-Value Pairs.
  1453 	// Parses message data composed of Attribute-Value Pairs.
  1382 	eap_process_tlv_message_data_c message(m_am_tools);
  1454 	eap_process_tlv_message_data_c message(m_am_tools);
  1437 		if (status != eap_status_ok)
  1509 		if (status != eap_status_ok)
  1438 		{
  1510 		{
  1439 			EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
  1511 			EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
  1440 			return EAP_STATUS_RETURN(m_am_tools, status);
  1512 			return EAP_STATUS_RETURN(m_am_tools, status);
  1441 		}
  1513 		}
       
  1514 
       
  1515 		EAP_TRACE_DEBUG(
       
  1516 			m_am_tools, 
       
  1517 			TRACE_FLAGS_DEFAULT, 
       
  1518 			(EAPL("eap_core_client_message_if_c::send_data(): this = 0x%08x, message=%d=%s\n"),
       
  1519 			this,
       
  1520 			function,
       
  1521 			eap_process_tlv_message_data_c::get_function_string(function)));
  1442 
  1522 
  1443 		switch(function)
  1523 		switch(function)
  1444 		{
  1524 		{
  1445 		case eap_tlv_message_type_function_packet_send:
  1525 		case eap_tlv_message_type_function_packet_send:
  1446 			status = packet_send(&parameters);
  1526 			status = packet_send(&parameters);