- updated MPESection creation
[senf.git] / Packets / MPEGDVBBundle / MPESection.cc
index 8035cdb..2625b7b 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
 // Copyright (C) 2007
-// Fraunhofer Institute for Open Communication Systems (FOKUS) 
-// Competence Center NETwork research (NET), St. Augustin, GERMANY 
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     Thorsten Horstmann <tho@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
 #define prefix_
 ///////////////////////////////cc.p////////////////////////////////////////
 
-//prefix_ boost::uint32_t senf::MPESectionParser::calcCrc()
-//    const
-//{
-//    return std::for_each(
-//            data().begin(), 
-//            boost::prior(data().end(), 4), 
-//            crc32_t() ).checksum();
-//}
+prefix_ boost::uint32_t senf::MPESectionParser::calcCrc()
+    const
+{
+    return std::for_each(
+            data().begin(),
+            boost::prior(data().end(), 4),
+            crc32_t() ).checksum();
+}
 
 
 prefix_ void senf::MPESectionType::dump(packet p, std::ostream & os)
@@ -92,7 +92,7 @@ prefix_ senf::PacketInterpreterBase::factory_t senf::MPESectionType::nextPacketT
         if (p->ip_datagram_version().value() == 4)
             return IPv4Packet::factory();
         if (p->ip_datagram_version().value() == 6)
-            return IPv4Packet::factory();
+            return IPv6Packet::factory();
     }
     return no_factory();
 }
@@ -101,7 +101,7 @@ prefix_ void senf::MPESectionType::finalize(packet p)
 {
     p->llc_snap_flag() = p.next(nothrow) && p.next().is<LlcSnapPacket>() ? 1 : 0;
     p->section_length() = p.data().size() - 3;
-//    p->crc() = p->calcCrc();
+    p->crc() = p->calcCrc();
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////