Bug Fix: OLSR messages generated on non-OLSR interfaces
authorLalith Suresh
Sun, 16 May 2010 10:12:26 +0530
changeset 6303 4ef0052694b9
parent 6302 e9b6963f1959
child 6304 645b4e644c12
Bug Fix: OLSR messages generated on non-OLSR interfaces
src/routing/olsr/olsr-routing-protocol.cc
--- a/src/routing/olsr/olsr-routing-protocol.cc	Sun May 16 20:10:59 2010 -0400
+++ b/src/routing/olsr/olsr-routing-protocol.cc	Sun May 16 10:12:26 2010 +0530
@@ -297,7 +297,7 @@
         {
           NS_FATAL_ERROR ("Failed to bind() OLSR receive socket");
         }
-      socket->Connect (InetSocketAddress (Ipv4Address (0xffffffff), OLSR_PORT_NUMBER));
+      socket->Connect (InetSocketAddress (addr.GetSubnetDirectedBroadcast (m_ipv4->GetAddress (i, 0).GetMask ()), OLSR_PORT_NUMBER));
       m_socketAddresses[socket] = m_ipv4->GetAddress (i, 0);
 
       canRunOlsr = true;
@@ -1542,7 +1542,11 @@
   m_txPacketTrace (header, containedMessages);
 
   // Send it
-  m_socketAddresses.begin ()->first->Send (packet);
+  for (std::map<Ptr<Socket> , Ipv4InterfaceAddress>::const_iterator i =
+      m_socketAddresses.begin (); i != m_socketAddresses.end (); i++)
+    {
+      i->first->Send (packet);
+    }
 }
 
 ///