--- a/src/common/packet-history.cc Tue May 29 16:09:20 2007 +0200
+++ b/src/common/packet-history.cc Tue May 29 16:24:40 2007 +0200
@@ -42,14 +42,16 @@
PacketHistory::PacketHistory ()
: m_data (0),
m_end (0),
- m_n (0)
+ m_n (0),
+ m_aggregated (false)
{
Construct (0, 0);
}
PacketHistory::PacketHistory (uint32_t uid, uint32_t size)
: m_data (0),
m_end (0),
- m_n (0)
+ m_n (0),
+ m_aggregated (false)
{
Construct (uid, size);
}
@@ -66,7 +68,8 @@
PacketHistory::PacketHistory (PacketHistory const &o)
: m_data (o.m_data),
m_end (o.m_end),
- m_n (o.m_n)
+ m_n (o.m_n),
+ m_aggregated (o.m_aggregated)
{
if (m_data != 0)
{
@@ -92,6 +95,7 @@
m_data = o.m_data;
m_end = o.m_end;
m_n = o.m_n;
+ m_aggregated = o.m_aggregated;
if (m_data != 0)
{
m_data->m_count++;
@@ -364,9 +368,12 @@
}
PacketHistory
-PacketHistory::CreateFragment (uint32_t start, uint32_t length) const
+PacketHistory::CreateFragment (uint32_t start, uint32_t end) const
{
- return *this;
+ PacketHistory fragment = *this;
+ fragment.RemoveAtStart (start);
+ fragment.RemoveAtEnd (end);
+ return fragment;
}
void
@@ -406,6 +413,7 @@
{
if (m_enable)
{
+ m_aggregated = true;
uint32_t n = GetUleb128Size (PacketHistory::ADD_AT_END);
n += o.m_end;
Reserve (n);
@@ -444,13 +452,8 @@
}
void
-PacketHistory::PrintDefault (std::ostream &os, Buffer buffer) const
+PacketHistory::PrintSimple (std::ostream &os, Buffer buffer) const
{
- if (!m_enable)
- {
- return;
- }
-
Buffer original = buffer;
HeadersToPrint headersToPrint;
TrailersToPrint trailersToPrint;
@@ -600,6 +603,29 @@
}
}
+void
+PacketHistory::PrintComplex (std::ostream &os, Buffer buffer) const
+{
+}
+
+void
+PacketHistory::PrintDefault (std::ostream &os, Buffer buffer) const
+{
+ if (!m_enable)
+ {
+ return;
+ }
+
+ if (m_aggregated)
+ {
+ PrintComplex (os, buffer);
+ }
+ else
+ {
+ PrintSimple (os, buffer);
+ }
+}
+
Chunk *
PacketHistory::CreateStatic (uint32_t uid)