X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FDefaultBundle%2FICMPv6Packet.cc;h=0556fec61df87779f3da8a48ab1e2841bcba1298;hb=3863d46dd898b7bc35ea8c6ccd8563b18762a6b6;hp=d70e7f52f44414c176c7be20d8c1ebecc7b4294f;hpb=962f88fbbfc6f4da1502088dfa94273e7fbd3c80;p=senf.git diff --git a/Packets/DefaultBundle/ICMPv6Packet.cc b/Packets/DefaultBundle/ICMPv6Packet.cc index d70e7f5..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 ); @@ -70,3 +75,14 @@ prefix_ void senf::ICMPv6PacketType::dump(packet p, std::ostream &os) } #undef prefix_ + + +// Local Variables: +// mode: c++ +// fill-column: 100 +// c-file-style: "senf" +// indent-tabs-mode: nil +// ispell-local-dictionary: "american" +// compile-command: "scons -u test" +// comment-column: 40 +// End: