[quagga-dev 3142] Re: Bug#303901: quagga: zebra : unused/dead ICMPv6 socket
Andrew J. Schorr
aschorr at telemetry-investments.com
Sun Apr 10 14:51:38 BST 2005
On Sun, Apr 10, 2005 at 03:27:51PM +0200, Christian Hammers wrote:
> > For some reason, zebra opens a raw ICMPv6 socket, but it looks like it
> > does not reads data on it :
> > # netstat -l
> > Proto Recv-Q Send-Q Local Address Foreign Address
> > State PID/Program name
> > (...)
> > raw6 109380 0 *:ipv6-icmp *:*
> > 7 22504/zebra
> > If it doesn't need it, it should be closed/not opened. If it's only for
> > writing, the socket should be shutdown for reading. If otherwise, it's
> > a bug.
I just fixed a similar problem with ICMP V4 IRDP sockets being created
for no reason. A quick glance suggests that the problem is that
main() always calls rtadv_init(), and rtadv_init() calls rtadv_make_socket().
And rtadv_make_socket() creates an ICMPV6 socket. I would guess that
the fix is to wait until no_ipv6_nd_suppress_ra() is called before creating
the socket, but it would be best if somebody more familiar with that
code could comment...
More information about the Quagga-dev