Merged nonotifier with main branch.
This commit is contained in:
@@ -338,9 +338,9 @@ main (int argc, char *argv[])
|
||||
CsmaHelper::EnableAsciiAll (ascii);
|
||||
|
||||
// Let's do a pcap trace on the backbone devices
|
||||
WifiHelper::EnablePcap ("mixed-wireless.pcap", backboneDevices);
|
||||
WifiHelper::EnablePcap ("mixed-wireless", backboneDevices);
|
||||
// Let's additionally trace the application Sink, ifIndex 0
|
||||
CsmaHelper::EnablePcap ("mixed-wireless.pcap", appSink->GetId (), 0);
|
||||
CsmaHelper::EnablePcap ("mixed-wireless", appSink->GetId (), 0);
|
||||
|
||||
#ifdef ENABLE_FOR_TRACING_EXAMPLE
|
||||
Config::Connect ("/NodeList/*/$MobilityModel/CourseChange",
|
||||
|
||||
@@ -186,6 +186,11 @@ Node::ReceiveFromDevice (Ptr<NetDevice> device, Ptr<Packet> packet,
|
||||
uint16_t protocol, const Address &from)
|
||||
{
|
||||
bool found = false;
|
||||
// if there are (potentially) multiple handlers, we need to copy the
|
||||
// packet before passing it to each handler, because handlers may
|
||||
// modify it.
|
||||
bool copyNeeded = (m_handlers.size () > 1);
|
||||
|
||||
for (ProtocolHandlerList::iterator i = m_handlers.begin ();
|
||||
i != m_handlers.end (); i++)
|
||||
{
|
||||
@@ -195,7 +200,7 @@ Node::ReceiveFromDevice (Ptr<NetDevice> device, Ptr<Packet> packet,
|
||||
if (i->protocol == 0 ||
|
||||
i->protocol == protocol)
|
||||
{
|
||||
i->handler (device, packet, protocol, from);
|
||||
i->handler (device, (copyNeeded ? packet->Copy () : packet), protocol, from);
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,11 +111,11 @@ PacketSocket::DoBind (const PacketSocketAddress &address)
|
||||
Ptr<NetDevice> dev ;
|
||||
if (address.IsSingleDevice ())
|
||||
{
|
||||
dev = 0;
|
||||
dev = m_node->GetDevice (address.GetSingleDevice ());
|
||||
}
|
||||
else
|
||||
{
|
||||
dev = m_node->GetDevice (address.GetSingleDevice ());
|
||||
dev = 0;
|
||||
}
|
||||
m_node->RegisterProtocolHandler (MakeCallback (&PacketSocket::ForwardUp, this),
|
||||
address.GetProtocol (), dev);
|
||||
|
||||
Reference in New Issue
Block a user