From c439eccdf8a11d030373a6a0640957f1a3c91358 Mon Sep 17 00:00:00 2001 From: Steven Date: Fri, 13 Oct 2017 05:03:10 +0200 Subject: [PATCH] Implemented matching for ND protocol related ICMPv6 messages (#257) - ROUTER_SOLICIT -> ROUTER_ADVERTIST - NEIGHBOUR_SOLICIT -> NEIGHBOUR_ADVERTIST Check if code equals zero according to https://tools.ietf.org/html/rfc4861#page-39 --- src/icmpv6.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/icmpv6.cpp b/src/icmpv6.cpp index 9e2e50a..449e01b 100644 --- a/src/icmpv6.cpp +++ b/src/icmpv6.cpp @@ -279,6 +279,10 @@ bool ICMPv6::matches_response(const uint8_t* ptr, uint32_t total_sz) const { return hdr_ptr->u_echo.identifier == header_.u_echo.identifier && hdr_ptr->u_echo.sequence == header_.u_echo.sequence; } + else if ( (type() == ROUTER_SOLICIT && hdr_ptr->type == ROUTER_ADVERT) || + (type() == NEIGHBOUR_SOLICIT && hdr_ptr->type == NEIGHBOUR_ADVERT) ) { + return hdr_ptr->code == 0; + } return false; }