X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FDefaultBundle%2FICMPv6Packet.cc;h=9d5d104b51770342bdfd7f215401c43d662d7bbe;hb=9a4ab28bb53bc1a7719141a2263282d4cf73b258;hp=dc8eea1a1d6020eae486be839dc853a622d34e08;hpb=78807b8db22aec579bc99f9aca673f81ecfff6b0;p=senf.git diff --git a/Packets/DefaultBundle/ICMPv6Packet.cc b/Packets/DefaultBundle/ICMPv6Packet.cc index dc8eea1..9d5d104 100644 --- a/Packets/DefaultBundle/ICMPv6Packet.cc +++ b/Packets/DefaultBundle/ICMPv6Packet.cc @@ -20,24 +20,34 @@ // Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// Custom includes -#include "../../Packets/Packets.hh" +/** \file + \brief ICMPv6Packet non-inline non-template implementation */ + #include "ICMPv6Packet.hh" +//#include "ICMPv6Packet.ih" + +// Custom includes #include #include "../../Packets/DefaultBundle/IPv6Packet.hh" #include "../../Utils/IpChecksum.hh" #define prefix_ +///////////////////////////////cc.p//////////////////////////////////////// namespace { senf::PacketRegistry::RegistrationProxy registerICMPv6Packet (58); } -prefix_ boost::uint16_t senf::ICMPv6PacketParser::calcChecksum() const { +prefix_ boost::uint16_t senf::ICMPv6PacketParser::calcChecksum() + const +{ senf::IpChecksum summer; senf::IPv6Packet ipv6 (packet().rfind(senf::nothrow)); + + if (! ipv6) + return 0u; summer.feed( ipv6->source().i(), ipv6->source().i() + senf::IPv6Packet::Parser::source_t::fixed_bytes ); @@ -69,6 +79,7 @@ prefix_ void senf::ICMPv6PacketType::dump(packet p, std::ostream &os) << "Checksum : " << p->checksum() << "\n"; } +///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_