Re: cvs commit: src/sys/netinet in.h ip_output.c ip_var.h

[ Available lists | Index of cvs-src | Month of May 2006 | Week of 15 May 2006 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Pavlin Radoslavov <pavlin@icir.org>
Date
15 May 2006 23:00:50
Subject
Re: cvs commit: src/sys/netinet in.h ip_output.c ip_var.h
Message-ID
200605152300.k4FN0k2N086754@possum.icir.org


[ Hide this part ]
Bruce M Simpson <bms@spc.org> wrote:

> Something like this:

In general, you may want to appropriately initialize ip_moptions
everywhere it is allocated. E.g., a quick search for "ip_moptions"
reveals that igmp_sendpkt() inside netinet/igmp.c also may have to
be modified. Another suspect (among others) is field "sc_imo" inside
struct pfsync_softc (file sys/contrib/pf/net/if_pfsync.h).

Pavlin

> %%%
> --- ip_mroute.c.orig Mon May 15 09:52:41 2006
> +++ ip_mroute.c Mon May 15 09:54:01 2006
> @@ -2115,6 +2115,7 @@
> ip_output(m, NULL, &vifp->v_route, IP_FORWARDING, NULL, NULL);
> else {
> struct ip_moptions imo;
> + struct in_multi *imm[2];
> int error;
> static struct route ro; /* XXX check this */
>
> @@ -2122,6 +2123,9 @@
> imo.imo_multicast_ttl = mtod(m, struct ip *)->ip_ttl - 1;
> imo.imo_multicast_loop = 1;
> imo.imo_multicast_vif = -1;
> + imo.imo_num_memberships = 0;
> + imo.imo_max_memberships = 2;
> + imo.imo_membership = &imm[0];
>
> /*
> * Re-entrancy should not be a problem here, because
> Exit 1
> %%%


Elapsed time: 0.137 seconds