--- a/src/internet-node/udp-socket.cc Mon Oct 01 14:14:31 2007 +0200
+++ b/src/internet-node/udp-socket.cc Mon Oct 01 14:15:56 2007 +0200
@@ -187,10 +187,10 @@
}
int
-UdpSocket::Send (const Packet &p)
+UdpSocket::Send (Ptr<Packet> p)
{
NS_LOG_FUNCTION;
- NS_LOG_PARAM ("(" << &p << ")");
+ NS_LOG_PARAM ("(" << p << ")");
if (!m_connected)
{
@@ -201,7 +201,7 @@
}
int
-UdpSocket::DoSend (const Packet &p)
+UdpSocket::DoSend (Ptr<Packet> p)
{
NS_LOG_FUNCTION;
if (m_endPoint == 0)
@@ -223,10 +223,10 @@
}
int
-UdpSocket::DoSendTo (const Packet &p, const Address &address)
+UdpSocket::DoSendTo (Ptr<Packet> p, const Address &address)
{
NS_LOG_FUNCTION;
- NS_LOG_PARAM ("(" << &p << ", " << address << ")");
+ NS_LOG_PARAM ("(" << p << ", " << address << ")");
if (!m_connected)
{
@@ -245,10 +245,10 @@
}
int
-UdpSocket::DoSendTo (const Packet &p, Ipv4Address dest, uint16_t port)
+UdpSocket::DoSendTo (Ptr<Packet> p, Ipv4Address dest, uint16_t port)
{
NS_LOG_FUNCTION;
- NS_LOG_PARAM ("(" << &p << ", " << dest << ", " << port << ")");
+ NS_LOG_PARAM ("(" << p << ", " << dest << ", " << port << ")");
Ipv4Route routeToDest;
@@ -281,9 +281,9 @@
{
Ipv4Address addri = ipv4->GetAddress (i);
Ipv4Mask maski = ipv4->GetNetworkMask (i);
- m_udp->Send (p, addri, addri.GetSubnetDirectedBroadcast (maski),
+ m_udp->Send (p->Copy (), addri, addri.GetSubnetDirectedBroadcast (maski),
m_endPoint->GetLocalPort (), port);
- NotifyDataSent (p.GetSize ());
+ NotifyDataSent (p->GetSize ());
}
}
else if (ipv4->GetIfIndexForDestination(dest, localIfIndex))
@@ -291,7 +291,7 @@
NS_LOG_LOGIC ("Route exists");
m_udp->Send (p, ipv4->GetAddress (localIfIndex), dest,
m_endPoint->GetLocalPort (), port);
- NotifyDataSent (p.GetSize ());
+ NotifyDataSent (p->GetSize ());
return 0;
}
else
@@ -305,10 +305,10 @@
}
int
-UdpSocket::SendTo(const Address &address, const Packet &p)
+UdpSocket::SendTo(const Address &address, Ptr<Packet> p)
{
NS_LOG_FUNCTION;
- NS_LOG_PARAM ("(" << address << ", " << &p << ")");
+ NS_LOG_PARAM ("(" << address << ", " << p << ")");
InetSocketAddress transport = InetSocketAddress::ConvertFrom (address);
Ipv4Address ipv4 = transport.GetIpv4 ();
uint16_t port = transport.GetPort ();
@@ -316,10 +316,10 @@
}
void
-UdpSocket::ForwardUp (const Packet &packet, Ipv4Address ipv4, uint16_t port)
+UdpSocket::ForwardUp (Ptr<Packet> packet, Ipv4Address ipv4, uint16_t port)
{
NS_LOG_FUNCTION;
- NS_LOG_PARAM ("(" << &packet << ", " << ipv4 << ", " << port << ")");
+ NS_LOG_PARAM ("(" << packet << ", " << ipv4 << ", " << port << ")");
if (m_shutdownRecv)
{
@@ -327,8 +327,7 @@
}
Address address = InetSocketAddress (ipv4, port);
- Packet p = packet;
- NotifyDataReceived (p, address);
+ NotifyDataReceived (packet, address);
}
} //namespace ns3
@@ -350,15 +349,15 @@
class UdpSocketTest: public Test
{
- Packet m_receivedPacket;
- Packet m_receivedPacket2;
+ Ptr<Packet> m_receivedPacket;
+ Ptr<Packet> m_receivedPacket2;
public:
virtual bool RunTests (void);
UdpSocketTest ();
- void ReceivePacket (Ptr<Socket> socket, const Packet &packet, const Address &from);
- void ReceivePacket2 (Ptr<Socket> socket, const Packet &packet, const Address &from);
+ void ReceivePacket (Ptr<Socket> socket, Ptr<Packet> packet, const Address &from);
+ void ReceivePacket2 (Ptr<Socket> socket, Ptr<Packet> packet, const Address &from);
};
@@ -366,12 +365,12 @@
: Test ("UdpSocket") {}
-void UdpSocketTest::ReceivePacket (Ptr<Socket> socket, const Packet &packet, const Address &from)
+void UdpSocketTest::ReceivePacket (Ptr<Socket> socket, Ptr<Packet> packet, const Address &from)
{
m_receivedPacket = packet;
}
-void UdpSocketTest::ReceivePacket2 (Ptr<Socket> socket, const Packet &packet, const Address &from)
+void UdpSocketTest::ReceivePacket2 (Ptr<Socket> socket, Ptr<Packet> packet, const Address &from)
{
m_receivedPacket2 = packet;
}
@@ -421,20 +420,21 @@
// ------ Now the tests ------------
// Unicast test
- m_receivedPacket = Packet ();
+ m_receivedPacket = Create<Packet> ();
NS_TEST_ASSERT_EQUAL (txSocket->SendTo (InetSocketAddress (Ipv4Address("10.0.0.1"), 1234),
- Packet (123)), 0);
+ Create<Packet> (123)), 0);
Simulator::Run ();
- NS_TEST_ASSERT_EQUAL (m_receivedPacket.GetSize (), 123);
+ NS_TEST_ASSERT_EQUAL (m_receivedPacket->GetSize (), 123);
// Simple broadcast test
- m_receivedPacket = Packet ();
+ m_receivedPacket = Create<Packet> ();
NS_TEST_ASSERT_EQUAL (txSocket->SendTo (InetSocketAddress (Ipv4Address("255.255.255.255"), 1234),
- Packet (123)), 0);
+ Create<Packet> (123)), 0);
Simulator::Run ();
- NS_TEST_ASSERT_EQUAL (m_receivedPacket.GetSize (), 123);
+ NS_TEST_ASSERT_EQUAL (m_receivedPacket->GetSize (), 123);
+
// Broadcast test with multiple receiving sockets
@@ -444,13 +444,13 @@
rxSocket2->SetRecvCallback (MakeCallback (&UdpSocketTest::ReceivePacket2, this));
NS_TEST_ASSERT_EQUAL (rxSocket2->Bind (InetSocketAddress (Ipv4Address ("0.0.0.0"), 1234)), 0);
- m_receivedPacket = Packet ();
- m_receivedPacket2 = Packet ();
+ m_receivedPacket = Create<Packet> ();
+ m_receivedPacket2 = Create<Packet> ();
NS_TEST_ASSERT_EQUAL (txSocket->SendTo (InetSocketAddress (Ipv4Address("255.255.255.255"), 1234),
- Packet (123)), 0);
+ Create<Packet> (123)), 0);
Simulator::Run ();
- NS_TEST_ASSERT_EQUAL (m_receivedPacket.GetSize (), 123);
- NS_TEST_ASSERT_EQUAL (m_receivedPacket2.GetSize (), 123);
+ NS_TEST_ASSERT_EQUAL (m_receivedPacket->GetSize (), 123);
+ NS_TEST_ASSERT_EQUAL (m_receivedPacket2->GetSize (), 123);
return result;
}