From 53be11fe6ff4c31a50ec02ee8c0d4969b835758b Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Tue, 15 Apr 2008 10:49:09 -0700 Subject: [PATCH] update testcase to deal with the return value of Socket::Send. Make sure udp packets are copied before going down the ip stack. --- src/internet-node/udp-socket.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/internet-node/udp-socket.cc b/src/internet-node/udp-socket.cc index 935a05f67..33ceac8fc 100644 --- a/src/internet-node/udp-socket.cc +++ b/src/internet-node/udp-socket.cc @@ -305,7 +305,7 @@ UdpSocket::DoSendTo (Ptr p, Ipv4Address dest, uint16_t port) else if (ipv4->GetIfIndexForDestination(dest, localIfIndex)) { NS_LOG_LOGIC ("Route exists"); - m_udp->Send (p, ipv4->GetAddress (localIfIndex), dest, + m_udp->Send (p->Copy (), ipv4->GetAddress (localIfIndex), dest, m_endPoint->GetLocalPort (), port); NotifyDataSent (p->GetSize ()); return p->GetSize();; @@ -479,7 +479,7 @@ UdpSocketTest::RunTests (void) m_receivedPacket = Create (); m_receivedPacket2 = Create (); NS_TEST_ASSERT_EQUAL (txSocket->SendTo (InetSocketAddress (Ipv4Address("10.0.0.1"), 1234), - Create (123)), 0); + Create (123)), 123); Simulator::Run (); NS_TEST_ASSERT_EQUAL (m_receivedPacket->GetSize (), 123); NS_TEST_ASSERT_EQUAL (m_receivedPacket2->GetSize (), 0); // second interface should receive it @@ -490,7 +490,7 @@ UdpSocketTest::RunTests (void) m_receivedPacket = Create (); m_receivedPacket2 = Create (); NS_TEST_ASSERT_EQUAL (txSocket->SendTo (InetSocketAddress (Ipv4Address("255.255.255.255"), 1234), - Create (123)), 0); + Create (123)), 123); Simulator::Run (); NS_TEST_ASSERT_EQUAL (m_receivedPacket->GetSize (), 123); // second socket should not receive it (it is bound specifically to the second interface's address @@ -510,7 +510,7 @@ UdpSocketTest::RunTests (void) m_receivedPacket = Create (); m_receivedPacket2 = Create (); NS_TEST_ASSERT_EQUAL (txSocket->SendTo (InetSocketAddress (Ipv4Address("255.255.255.255"), 1234), - Create (123)), 0); + Create (123)), 123); Simulator::Run (); NS_TEST_ASSERT_EQUAL (m_receivedPacket->GetSize (), 123); NS_TEST_ASSERT_EQUAL (m_receivedPacket2->GetSize (), 123);