On 03/29/2017 04:02 AM, Michal Privoznik wrote:
Since its introduction in 1ce4922e720 this function lived as an
outcast in an #if 0 block.
My memory is faint now, but I believe radvd as a whole is now nearly
unused, since dnsmasq gained the same functionality (route
advertisement) soon after we started using radvd, so we added code to
only run radvd if dnsmasq doesn't support RA.
At any rate, I'm guessing that this function was written in expectation
that it might be needed if we had to restart radvd due to a change in
the network's config while the network was still running (that's what we
use networkDhcpDaemonRestart() for), but it looks like it was forgotten,
and the calls were never added in the proper place (basically wherever
networkDhcpDaemonRestart() is called, but only if there is a change in
IPv6 addresses for the network).
(going back to refresh my memory - dnsmasq has supported RA since
version 2.67, which was released in 2013. RHEL6 does still use dnsmasq
2.48, but then any RHEL6 installation has been around for long enough
that if a lack of restarting radvd at appropriate times was a problem,
it would have been noticed a long time ago. RHEL7 also is only at
dnsmasq 2.66, but it appears that the --enable-ra patches have been
backported into the RHEL7 version of dnsmasq, so it won't use radvd)
So, although I think it's a mostly moot point, I still think the proper
solution to this is to start using the function rather than remove it.