Subject: Re: CVS commit: syssrc
To: enami tsugutomo <enami@but-b.or.jp>
From: None <itojun@iijlab.net>
List: source-changes
Date: 10/09/2000 12:21:00
>>> 	maybe the above commit changed the goal slightly.
>>> 	the goal of multicast kludge table (which i ported from
>>> 	sys/netinet6/in6.c) was to keep multicast group information ONLY,
>>> 	when all the interface address is gone.  it was not my intention
>>> 	to avoid the removal of the last IPv4 interface address.
>>> 	could you tell me why is the change?
>>Hmm, I guess you're misunderstanding my change or the comment I wrote
>>was miss the point.  I didn't change ``to avoid the removal of the
>>last IPv4 interface address.''
>(snip)
>	i see, your code looks more correct.  i'll need to fix IPv6 counterpart.

	i ran some experiment with IPv6, and now I think in_pcbpurgeif() is
	incorrect.  it should not leave multicast groups the user application
	have joined.

	for example:
	- have an interface if0.
	- run a multicast application.  join a multicast group on if0.
	- remove if0 (for example, pcmcia card).
	  in_pcbpurgeif() nukes all multicast groups joined by the application.
	- re-insert if0.   now, the application has no multicast group with it.

	if you agree that in_pcbpurgeif() should not leave multicast groups
	for pcb, we should revisit in_purgeaddr()...

itojun