removed some useless spaces; not very important, I know :)
[senf.git] / Packets / DefaultBundle / IPv6Packet.cc
index bb405d4..ca4fc8f 100644 (file)
@@ -1,6 +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
@@ -40,9 +42,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)
@@ -63,8 +62,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////////////////////////////////////////