X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FDefaultBundle%2FICMPv6Packet.cc;h=0556fec61df87779f3da8a48ab1e2841bcba1298;hb=bae85d8377946bd545cfa83cf703d62b2028e476;hp=dc8eea1a1d6020eae486be839dc853a622d34e08;hpb=94812233f5b3936499cbdddb41bb5cc20f1707b8;p=senf.git diff --git a/Packets/DefaultBundle/ICMPv6Packet.cc b/Packets/DefaultBundle/ICMPv6Packet.cc index dc8eea1..0556fec 100644 --- a/Packets/DefaultBundle/ICMPv6Packet.cc +++ b/Packets/DefaultBundle/ICMPv6Packet.cc @@ -34,10 +34,15 @@ namespace { 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 );