ndp() updates addr_seen or addr_ll_seen based on the source address of the received packet. This is redundant since tap6_handler() has already updated addr_seen for any type of packet, not just NDP. Signed-off-by: David Gibson <david(a)gibson.dropbear.id.au> --- ndp.c | 9 ++------- ndp.h | 4 ++-- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/ndp.c b/ndp.c index faae408..ab80898 100644 --- a/ndp.c +++ b/ndp.c @@ -179,8 +179,8 @@ struct ndp_ns { * * Return: 0 if not handled here, 1 if handled, -1 on failure */ -int ndp(struct ctx *c, const struct icmp6hdr *ih, const struct in6_addr *saddr, - const struct pool *p) +int ndp(const struct ctx *c, const struct icmp6hdr *ih, + const struct in6_addr *saddr, const struct pool *p) { struct ndp_na na = { .ih = { @@ -336,11 +336,6 @@ dns_done: return 1; } - if (IN6_IS_ADDR_LINKLOCAL(saddr)) - c->ip6.addr_ll_seen = *saddr; - else - c->ip6.addr_seen = *saddr; - rsaddr = &c->ip6.our_tap_ll; if (ih->icmp6_type == NS) { diff --git a/ndp.h b/ndp.h index a786441..abe6d02 100644 --- a/ndp.h +++ b/ndp.h @@ -6,7 +6,7 @@ #ifndef NDP_H #define NDP_H -int ndp(struct ctx *c, const struct icmp6hdr *ih, const struct in6_addr *saddr, - const struct pool *p); +int ndp(const struct ctx *c, const struct icmp6hdr *ih, + const struct in6_addr *saddr, const struct pool *p); #endif /* NDP_H */ -- 2.47.0