Utils/Console: Add short help to 'ls' output
[senf.git] / Packets / DefaultBundle / IPv6Packet.cc
index 4841834..a0f9083 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
 // Copyright (C) 2007
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
@@ -30,7 +30,6 @@
 #include <iomanip>
 #include <boost/io/ios_state.hpp>
 #include "EthernetPacket.hh"
-#include "../../Socket/Protocols/INet/INetAddressing.hh"
 
 //#include "IPv6Packet.mpp"
 #define prefix_
@@ -42,9 +41,6 @@ namespace {
 
     senf::PacketRegistry<senf::IpTypes>::RegistrationProxy<senf::IPv6Packet>
         registerIPv6Packet2 (41); // IP6-in-IP(6) encapsulation
-
-    senf::PacketRegistry<senf::IpTypes>::RegistrationProxy<senf::DataPacket>
-        registerNoNextHeader (59);
 }
 
 prefix_ void senf::IPv6PacketType::dump(packet p, std::ostream & os)
@@ -65,8 +61,13 @@ prefix_ void senf::IPv6PacketType::dump(packet p, std::ostream & os)
 
 prefix_ void senf::IPv6PacketType::finalize(packet p)
 {
-    p->length() << (p.size() - Parse_IPv6::fixed_bytes);
-    p->nextHeader() << key(p.next());
+    p->length() << (p.size() - IPv6PacketParser::fixed_bytes);
+    try {
+        p->nextHeader() << key(p.next());
+    }
+    catch (InvalidPacketChainException & ex) {
+        p->nextHeader() << 59; // No next header
+    }
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////