Really ripngd should either leave groups on down interfaces, or keep
track of on which interfaces joins have occurred.  This is complicated
by the possible lack of a clear behavior spec on whether interfaces
keep their joined group lists across a down/up/down transition.  (On
NetBSD, they do.)

2004-01-03  Greg Troxel  <gdt@ahi.ir.bbn.com>

        * ripng_interface.c (ripng_multicast_join): If IPV6_JOIN_GROUP
        returns EADDRINUSE, consider the join successful.  This happens
        when an interface goes down and comes back because
        ripng_multicast_leave does not invoke the LEAVE_GROUP operation if
        the interface is down.  Solves problem of ripng stopping working
        on an interface which goes down and then comes back up (on NetBSD).
2 files changed