The following steps will lead to a closing of the UDP socket bound to port 17225 if an VOS_IO_ERR occurs on that socket. Afterwards the system will not be able to receive any message data.
- trdp_mdSend() calls mdSendPacket()
- trdp_mdSendPacket() calls vos_sockSendUDP()
- vos_sockSendUDP() returns VOS_IO_ERR
- trdp_mdSendPacket() checks return vaule against VOS_NO_ERR and returns TRDP_BLOCK_ERR
- trdp_mdSend() checks return value against TRDP_NO_ERR and TRDP_IO_ERR, all other errors lead to a appHandle->iface[iterMD->socketIdx].tcpParams.morituri = TRUE;: The socket will be closed
Proposed solution:
trdp_mdSendPacket() should map VOS_IO_ERR to TRDP_IO_ERR.