# HG changeset patch # User Lalith Suresh # Date 1273946382 -19800 # Node ID 34ba8ac8f9c1087e26143532665f95149b6a394d # Parent 4d2c51488ac22e38062078ac7c074b0713978950 Fixed OLSR bug: OLSR messages being generated on non-OLSR interfaces. diff -r 4d2c51488ac2 -r 34ba8ac8f9c1 src/routing/olsr/olsr-routing-protocol.cc --- a/src/routing/olsr/olsr-routing-protocol.cc Sun May 09 21:19:59 2010 +0100 +++ b/src/routing/olsr/olsr-routing-protocol.cc Sat May 15 23:29:42 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 , Ipv4InterfaceAddress>::const_iterator i = + m_socketAddresses.begin (); i != m_socketAddresses.end (); i++) + { + i->first->Send (packet); + } } ///