From: Roy Marples Date: Tue, 23 Apr 2019 18:54:39 +0000 (+0000) Subject: sun: Bind IPv6ND socket to interface. X-Git-Tag: v7.2.1~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fcd7ff4a7e39b7e80c2c1babe7fc150ef7e1efe;p=thirdparty%2Fdhcpcd.git sun: Bind IPv6ND socket to interface. Just to be on the safe side as it is per interface .... --- diff --git a/src/ipv6nd.c b/src/ipv6nd.c index a0fd4185..e8a06182 100644 --- a/src/ipv6nd.c +++ b/src/ipv6nd.c @@ -242,6 +242,7 @@ ipv6nd_open(struct interface *ifp) .ipv6mr_interface = ifp->index }; struct rs_state *state = RS_STATE(ifp); + uint_t ifindex = ifp->index; if (state->nd_fd != -1) return state->nd_fd; @@ -250,6 +251,13 @@ ipv6nd_open(struct interface *ifp) if (s == -1) return -1; + if (setsockopt(s, IPPROTO_IPV6, IPV6_BOUND_IF, + &ifindex, sizeof(ifindex)) == -1) + { + close(s); + return -1; + } + if (setsockopt(s, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1) {