From 0aa1b81464fa8fcfa10085ed320cd611c32b1e99 Mon Sep 17 00:00:00 2001 From: Kirill Andreev Date: Wed, 18 Mar 2009 14:02:58 +0300 Subject: [PATCH] Deserialization bugfix --- src/devices/mesh/802.11s/ie-dot11s-beacon-timing.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/devices/mesh/802.11s/ie-dot11s-beacon-timing.cc b/src/devices/mesh/802.11s/ie-dot11s-beacon-timing.cc index 2697ef258..f000174d9 100644 --- a/src/devices/mesh/802.11s/ie-dot11s-beacon-timing.cc +++ b/src/devices/mesh/802.11s/ie-dot11s-beacon-timing.cc @@ -20,6 +20,7 @@ #include "ns3/ie-dot11s-beacon-timing.h" +#include "ns3/log.h" namespace ns3 { /******************************************* * WifiBeaconTimingElementUnit @@ -89,7 +90,7 @@ WifiBeaconTimingElement::AddNeighboursTimingElementUnit( Time beacon_interval //MicroSeconds! ) { - if(m_numOfUnits == 255) + if(m_numOfUnits == 50) return; //Firs we lookup if this element already exists for (NeighboursTimingUnitsList::iterator i = m_neighbours.begin(); i!= m_neighbours.end(); i++) @@ -147,7 +148,7 @@ WifiBeaconTimingElement::ClearTimingElement() uint16_t WifiBeaconTimingElement::GetInformationSize () const { - return (2+5*m_numOfUnits > m_maxSize) ? 2+((m_maxSize-2)/5)*5 : 2+5*m_numOfUnits; + return (5*m_numOfUnits); } void @@ -170,7 +171,8 @@ uint16_t WifiBeaconTimingElement::DeserializeInformation (Buffer::Iterator start, uint8_t length) { Buffer::Iterator i = start; - for (int j = 0; j < length; j ++) + m_numOfUnits = length/5; + for (int j = 0; j < m_numOfUnits; j ++) { Ptr new_element = Create(); new_element->SetAID(i.ReadU8());