X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FDefaultBundle%2FIPv6ExtOptionType.ct;h=fef4b76d2929d26c9ef953517492ac3ff7679afb;hb=ec7f715d7eef5bb915c7ca39587a99fb41d8d3be;hp=2b2d79a49259d2e1f65ea3bf1f1245162153de82;hpb=7fa56b4683159c364b49fe297db5b8dd6fdaefb0;p=senf.git diff --git a/senf/Packets/DefaultBundle/IPv6ExtOptionType.ct b/senf/Packets/DefaultBundle/IPv6ExtOptionType.ct index 2b2d79a..fef4b76 100644 --- a/senf/Packets/DefaultBundle/IPv6ExtOptionType.ct +++ b/senf/Packets/DefaultBundle/IPv6ExtOptionType.ct @@ -26,6 +26,7 @@ //#include "IPv6ExtOptionType.ih" // Custom includes +#include #define prefix_ ///////////////////////////////ct.p//////////////////////////////////////// @@ -60,18 +61,19 @@ prefix_ void senf::IPv6GenericOptionTLVParser::setPayload(ForwardReadableRange c template -prefix_ Parser& senf::IPv6GenericOptionTLVParser::init() -{ - size_type oldSize ( bytes() ); - resize( oldSize, senf::init_bytes::value); - data_iterator j = i(); - std::advance(j, senf::init_bytes::value); - std::fill(i() , j, 0u); - Parser::init(); - Parser::optionType() = Parser::typeCode; - return *(this); +prefix_ Parser senf::IPv6GenericOptionTLVParser::init() +{ + size_type oldSize (bytes() ); + size_type newParserSize ( senf::init_bytes::value ); + resize( oldSize, newParserSize); + std::fill(i(),boost::next(i(), newParserSize), 0u); + Parser concreteParser = Parser(i(), state() ); + concreteParser.init(); + concreteParser.optionLength() = (newParserSize-2); + return concreteParser; } + // template // prefix_ Parser& senf::GenericOptTypeTLVParser::get() // {