Merged nonotifier with main branch.

This commit is contained in:
Unknown
2008-05-15 07:47:17 -04:00
3 changed files with 10 additions and 5 deletions

View File

@@ -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",

View File

@@ -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;
}
}

View File

@@ -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);