summaryrefslogtreecommitdiff
path: root/ripngd/ripng_interface.c
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2016-11-18 15:39:25 -0200
committerRenato Westphal <renato@opensourcerouting.org>2016-11-25 11:46:06 -0200
commit9e544a9c4bd13aac6bbeaff235abaaeb07a186b3 (patch)
tree8227396cd0f79a4edb4d136c4dc974d9c31667de /ripngd/ripng_interface.c
parentd7f966abed5f822e6f90442de5ccbf848be01b64 (diff)
ripngd: fix drop of multicast membership when the interface is down
When an interface is shut down, ripng_multicast_leave() is called after ifp->flags is updated in ripng_interface_down(). So we shouldn't check if the interface is up in order to proceed with the membership drop. For consistency's sake, don't check for if_is_up() in ripng_multicast_join() as well. In this case, this function is only called when the interface is up, so the check was unnecessary. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'ripngd/ripng_interface.c')
-rw-r--r--ripngd/ripng_interface.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ripngd/ripng_interface.c b/ripngd/ripng_interface.c
index c4dec7e7b1..a8742ec9a4 100644
--- a/ripngd/ripng_interface.c
+++ b/ripngd/ripng_interface.c
@@ -65,7 +65,7 @@ ripng_multicast_join (struct interface *ifp)
struct ipv6_mreq mreq;
int save_errno;
- if (if_is_up (ifp) && if_is_multicast (ifp)) {
+ if (if_is_multicast (ifp)) {
memset (&mreq, 0, sizeof (mreq));
inet_pton(AF_INET6, RIPNG_GROUP, &mreq.ipv6mr_multiaddr);
mreq.ipv6mr_interface = ifp->ifindex;
@@ -116,7 +116,7 @@ ripng_multicast_leave (struct interface *ifp)
int ret;
struct ipv6_mreq mreq;
- if (if_is_up (ifp) && if_is_multicast (ifp)) {
+ if (if_is_multicast (ifp)) {
memset (&mreq, 0, sizeof (mreq));
inet_pton(AF_INET6, RIPNG_GROUP, &mreq.ipv6mr_multiaddr);
mreq.ipv6mr_interface = ifp->ifindex;