| 402 | } |
| 403 | |
| 404 | void HandleReceivedListIdentityCommandUdp(const int socket, |
| 405 | const struct sockaddr_in *const from_address, |
| 406 | const EncapsulationData *const receive_data, |
| 407 | ENIPMessage *const outgoing_message) { |
| 408 | DelayedEncapsulationMessage *delayed_message_buffer = NULL; |
| 409 | ENIPMessage* p_outgoing_message = NULL; |
| 410 | |
| 411 | for (size_t i = 0; i < ENCAP_NUMBER_OF_SUPPORTED_DELAYED_ENCAP_MESSAGES; |
| 412 | i++) { |
| 413 | if (kEipInvalidSocket == g_delayed_encapsulation_messages[i].socket) { |
| 414 | delayed_message_buffer = &(g_delayed_encapsulation_messages[i]); |
| 415 | |
| 416 | p_outgoing_message = &(delayed_message_buffer->outgoing_message); |
| 417 | InitializeENIPMessage(p_outgoing_message); |
| 418 | break; |
| 419 | } |
| 420 | } |
| 421 | |
| 422 | if (NULL != delayed_message_buffer) { |
| 423 | delayed_message_buffer->socket = socket; |
| 424 | memcpy( (&delayed_message_buffer->receiver), from_address, |
| 425 | sizeof(struct sockaddr_in) ); |
| 426 | |
| 427 | DetermineDelayTime(receive_data->communication_buffer_start, |
| 428 | delayed_message_buffer); |
| 429 | |
| 430 | EncapsulateListIdentityResponseMessage(receive_data, p_outgoing_message); |
| 431 | } |
| 432 | } |
| 433 | |
| 434 | void EncapsulateListIdentityResponseMessage( |
| 435 | const EncapsulationData *const receive_data, |
no test coverage detected