diff -r d61f311999f1 src/olsr/model/olsr-routing-protocol.cc --- a/src/olsr/model/olsr-routing-protocol.cc Sat Mar 19 14:26:03 2011 +0000 +++ b/src/olsr/model/olsr-routing-protocol.cc Sun Mar 20 11:23:52 2011 +0000 @@ -318,17 +318,13 @@ continue; // Create a socket to listen only on this interface - Ptr socket = Socket::CreateSocket (GetObject (), - UdpSocketFactory::GetTypeId()); + Ptr socket = Socket::CreateSocket (GetObject (), UdpSocketFactory::GetTypeId ()); + socket->SetRecvCallback (MakeCallback (&RoutingProtocol::RecvOlsr, this)); + socket->BindToNetDevice (m_ipv4->GetNetDevice (i)); + socket->Bind (InetSocketAddress (m_ipv4->GetAddress (i, 0).GetLocal (), OLSR_PORT_NUMBER)); socket->SetAllowBroadcast (true); - InetSocketAddress inetAddr (m_ipv4->GetAddress (i, 0).GetLocal (), OLSR_PORT_NUMBER); - socket->SetRecvCallback (MakeCallback (&RoutingProtocol::RecvOlsr, this)); - if (socket->Bind (inetAddr)) - { - NS_FATAL_ERROR ("Failed to bind() OLSR socket"); - } m_socketAddresses[socket] = m_ipv4->GetAddress (i, 0); - + canRunOlsr = true; }