1.1 --- a/src/common/packet.cc Tue Jun 02 16:38:24 2009 +0200
1.2 +++ b/src/common/packet.cc Tue Jun 02 19:40:05 2009 +0200
1.3 @@ -294,7 +294,13 @@
1.4 Packet::PeekData (void) const
1.5 {
1.6 NS_LOG_FUNCTION (this);
1.7 - return m_buffer.PeekData ();
1.8 + uint32_t oldStart = m_buffer.GetCurrentStartOffset ();
1.9 + uint8_t const * data = m_buffer.PeekData ();
1.10 + uint32_t newStart = m_buffer.GetCurrentStartOffset ();
1.11 +
1.12 + // Update tag offsets if buffer offsets were changed
1.13 + const_cast<TagList &>(m_tagList).AddAtStart (newStart - oldStart, newStart);
1.14 + return data;
1.15 }
1.16
1.17 uint32_t
1.18 @@ -952,6 +958,18 @@
1.19 CHECK (tmp, 1, E (10, 0, 10));
1.20 }
1.21
1.22 + {
1.23 + // bug 572
1.24 + Ptr<Packet> tmp = Create<Packet> (1000);
1.25 + tmp->AddTag (ATestTag<20> ());
1.26 + CHECK (tmp, 1, E (20, 0, 1000));
1.27 + tmp->AddHeader (ATestHeader<2> ());
1.28 + CHECK (tmp, 1, E (20, 2, 1002));
1.29 + tmp->RemoveAtStart (1);
1.30 + CHECK (tmp, 1, E (20, 1, 1001));
1.31 + tmp->PeekData ();
1.32 + CHECK (tmp, 1, E (20, 1, 1001));
1.33 + }
1.34
1.35 return result;
1.36 }