Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Oct 2009 15:40:03 GMT
From:      Stef Walter <stef@memberwebs.com>
To:        freebsd-net@FreeBSD.org
Subject:   Re: kern/137164: [netinet] [patch] assert panic imo_match_source()
Message-ID:  <200910061540.n96Fe3x0014870@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/137164; it has been noted by GNATS.

From: Stef Walter <stef@memberwebs.com>
To: bug-followup@FreeBSD.org, jhanna@pangolin-systems.com, 
 Bruce Simpson <bms@incunabulum.net>
Cc:  
Subject: Re: kern/137164: [netinet] [patch] assert panic imo_match_source()
Date: Tue, 06 Oct 2009 10:37:31 -0500

 This is a multi-part message in MIME format.
 --------------090401010308070005060707
 Content-Type: text/plain; charset=ISO-8859-1
 Content-Transfer-Encoding: 7bit
 
 Thanks for working on getting all these multicast fixes in. Much
 appreciated!
 
 Just one more thing, previous to 7.x FreeBSD would return EADDRINUSE
 in the case of a double IP_ADD_MEMBERSHIP. Software like quagga uses
 this error code to detect this condition.
 
 As patched (and MFC'd in 7.x and 8.x) EINVAL is returned instead and
 this confuses such software.
 
 Currently the multicast code does not remove memberships from its
 internal structures when an interface goes down. It's hard for userland
 to reliably track the condition of a multicast membership that didn't go
 away due to an interface going down. So software like quagga uses
 EADDRINUSE to track the condition.
 
 Obviously, as you Bruce mentioned, an better solution needs to be found
 eventually WRT to 'dynamic' interfaces and the multicast code. But for
 now would the attached patch be acceptable? It would prevent regressions
 from FreeBSD 6.x.
 
 Thanks for considering,
 
 Stef
 
 
 --------------090401010308070005060707
 Content-Type: text/x-diff;
  name="freebsd-mcast-eaddrinuse.patch"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline;
  filename="freebsd-mcast-eaddrinuse.patch"
 
 --- sys/netinet/in_mcast.c.orig	2009-09-30 16:43:35.000000000 +0000
 +++ sys/netinet/in_mcast.c	2009-09-30 17:04:59.000000000 +0000
 @@ -2010,5 +2010,5 @@
  			 * is atomic with allocation of a membership.
  			 */
 -			error = EINVAL;
 +			error = EADDRINUSE;
  			goto out_inp_locked;
  		}
 
 
 --------------090401010308070005060707--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910061540.n96Fe3x0014870>