@@ -63,6 +63,7 @@ static void _sigio_handler()
63
63
void UDPSOCKET_ECHOTEST ()
64
64
{
65
65
SocketAddress udp_addr;
66
+ SocketAddress recv_addr;
66
67
NetworkInterface::get_default_instance ()->gethostbyname (ECHO_SERVER_ADDR, &udp_addr);
67
68
udp_addr.set_port (ECHO_SERVER_PORT);
68
69
@@ -94,7 +95,7 @@ void UDPSOCKET_ECHOTEST()
94
95
95
96
do {
96
97
received_duplicate_packet = false ;
97
- recvd = sock.recvfrom (NULL , rx_buffer, pkt_s);
98
+ recvd = sock.recvfrom (&recv_addr , rx_buffer, pkt_s);
98
99
// Check if received duplicated packet
99
100
for (unsigned int d_idx = 0 ; d_idx < PKTS; ++d_idx) {
100
101
if (pkt_received[d_idx] && d_idx != s_idx && recvd == pkt_sizes[d_idx]) {
@@ -111,6 +112,10 @@ void UDPSOCKET_ECHOTEST()
111
112
printf (" [Round#%02d - Receiver] error, returned %d\n " , s_idx, recvd);
112
113
}
113
114
}
115
+ // Verify received address is correct
116
+ TEST_ASSERT (udp_addr == recv_addr);
117
+ TEST_ASSERT_EQUAL (udp_addr.get_port (), recv_addr.get_port ());
118
+
114
119
if (memcmp (tx_buffer, rx_buffer, pkt_s) == 0 ) {
115
120
packets_recv++;
116
121
pkt_received[s_idx] = true ;
0 commit comments