[..]
void SendDiagnoseMessage(u08 source_address, u08 destination_address,
u08 *message, u16 length)
{
struct ETH_Diagnose_Struct *hs_send_diagnose_message;
struct tcp_pcb *apcbs = tcp_active_pcbs;
u32 i=0;
while (apcbs != NULL)
{
if (apcbs->local_port == DIAGNOSE_TCP_PORT)
{
hs_send_diagnose_message = apcbs->callback_arg;
if (hs_send_diagnose_message->file == NULL )
{
/* build tcp_diag_response_header */
DiagResponseHeader->len = (u32)length + DIAG_ADDRESS_LEN;
DiagResponseHeader->ctrl_word = DIAG_RESP_CW;
DiagResponseHeader->source = source_address;
DiagResponseHeader->target = destination_address;
/* copy payload */
for(i=0; i < length; i++)
{
diag_buf[i+ HEADER_LEN + DIAG_ADDRESS_LEN] = *message;
message++;
}
hs_send_diagnose_message->file = (u08*)&diag_buf;
hs_send_diagnose_message->left = length + HEADER_LEN +
DIAG_ADDRESS_LEN;
if(hs_send_diagnose_message->left >0)
{
tcp_send_data_diag(apcbs, hs_send_diagnose_message);
tcp_sent(apcbs, tcp_sent_diag);
}
}
break;
}
apcbs = apcbs->next;
}
}
_______________________________________________
lwip-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/lwip-users