diff options
| author | Renato Westphal <renato@opensourcerouting.org> | 2016-11-18 15:39:25 -0200 | 
|---|---|---|
| committer | Renato Westphal <renato@opensourcerouting.org> | 2016-11-25 11:46:06 -0200 | 
| commit | 9e544a9c4bd13aac6bbeaff235abaaeb07a186b3 (patch) | |
| tree | 8227396cd0f79a4edb4d136c4dc974d9c31667de /ripngd/ripng_interface.c | |
| parent | d7f966abed5f822e6f90442de5ccbf848be01b64 (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.c | 4 | 
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;  | 
