X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FDefaultBundle%2FIPv6ExtOptionType.ct;fp=senf%2FPackets%2FDefaultBundle%2FIPv6ExtOptionType.ct;h=f498f28f96db83697f3b544f8b399f4be3f3951d;hb=0c032ed95aa957cdf6e2d173f8717874f26f45e3;hp=6c5a841212887a31eef5aa43594a6bc8a00231dd;hpb=0658fe504b84d3b8bf90eb28c72ca62e83f190b6;p=senf.git diff --git a/senf/Packets/DefaultBundle/IPv6ExtOptionType.ct b/senf/Packets/DefaultBundle/IPv6ExtOptionType.ct index 6c5a841..f498f28 100644 --- a/senf/Packets/DefaultBundle/IPv6ExtOptionType.ct +++ b/senf/Packets/DefaultBundle/IPv6ExtOptionType.ct @@ -44,7 +44,13 @@ prefix_ void senf::GenericOptTypeTLVPacketParser::value(ForwardReadableRange con resize(optionLength()+2, rangeSize); std::copy(boost::next(boost::begin(range), 2), boost::next(boost::end(range)), si); - optionType() = *(boost::begin(range)); + unsigned int val = *(boost::begin(range)); + unsigned int mask = 192u; + altAction() = (val & mask) >> 6; + mask = 32u; + changeFlag() = (val & mask) >> 5; + mask = 31u; + optionType() = (val & mask); optionLength() = *(boost::next( boost::begin(range), 1)); }