netdev
[Top] [All Lists]

Re: Broken? 2.6.6 + IP_ADD_SOURCE_MEMBERSHIP + SO_REUSEADDR

To: YOSHIFUJI Hideaki / åèèæ <yoshfuji@xxxxxxxxxxxxxx>
Subject: Re: Broken? 2.6.6 + IP_ADD_SOURCE_MEMBERSHIP + SO_REUSEADDR
From: "Wesley W. Terpstra" <terpstra@xxxxxxxxxxxxxxxxxxxx>
Date: Fri, 4 Jun 2004 23:29:16 +0200
Cc: linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx, davem@xxxxxxxxxx
In-reply-to: <20040605.015544.102223977.yoshfuji@linux-ipv6.org>
References: <20040604155423.GA5656@muffin> <20040605.015544.102223977.yoshfuji@linux-ipv6.org>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.5.6i
On Sat, Jun 05, 2004 at 01:55:44AM +0900, YOSHIFUJI Hideaki / åèèæ 
wrote:
> In article <20040604155423.GA5656@muffin> (at Fri, 4 Jun 2004 17:54:23 
> +0200), "Wesley W. Terpstra" <terpstra@xxxxxxxxxxxxxxxxxxxx> says:
> > If I launch the same program twice with different senders, the first program
> > ceases to receive multicast packets. (Neither from its own sender, nor the
> > second program's sender) The second program receives packets from its
> > designated sender only (as expected).
> >
> > If both programs specify the same sender, then both programs receive the
> > message (as expected).
> 
> Thanks for the report.
> The following patch should fix the issue. Please try.
> Thanks again.
> 
> ===== net/ipv4/udp.c 1.60 vs edited =====
> --- 1.60/net/ipv4/udp.c       2004-05-31 03:57:26 +09:00
> +++ edited/net/ipv4/udp.c     2004-06-05 01:47:07 +09:00
> @@ -294,7 +294,7 @@
>                   ipv6_only_sock(s)                                   ||
>                   (s->sk_bound_dev_if && s->sk_bound_dev_if != dif))
>                       continue;
> -             if (!ip_mc_sf_allow(sk, loc_addr, rmt_addr, dif))
> +             if (!ip_mc_sf_allow(s, loc_addr, rmt_addr, dif))
>                       continue;
>               goto found;
>       }

That works.
I have confirmed that multiple senders for multiple processes is fixed.

I am amazed you fixed it so fast!
Will this make it into 2.6.7?

-- 
Wesley W. Terpstra


<Prev in Thread] Current Thread [Next in Thread>