Patch to fix ip cksum errors. From mccanne@ee.lbl.gov (Steven McCanne).

This commit is contained in:
brezak 1994-06-09 15:59:47 +00:00
parent 730768feb0
commit de3a00ee3d

View File

@ -35,7 +35,7 @@
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* from: @(#)igmp.c 8.1 (Berkeley) 7/19/93 * from: @(#)igmp.c 8.1 (Berkeley) 7/19/93
* $Id: igmp.c,v 1.6 1994/06/04 08:13:23 mycroft Exp $ * $Id: igmp.c,v 1.7 1994/06/09 15:59:47 brezak Exp $
*/ */
/* Internet Group Management Protocol (IGMP) routines. */ /* Internet Group Management Protocol (IGMP) routines. */
@ -285,12 +285,16 @@ igmp_sendreport(inm)
ip->ip_src.s_addr = INADDR_ANY; ip->ip_src.s_addr = INADDR_ANY;
ip->ip_dst = inm->inm_addr; ip->ip_dst = inm->inm_addr;
igmp = (struct igmp *)(ip + 1); m->m_data += sizeof(struct ip);
m->m_len -= sizeof(struct ip);
igmp = mtod(m, struct igmp *);
igmp->igmp_type = IGMP_HOST_MEMBERSHIP_REPORT; igmp->igmp_type = IGMP_HOST_MEMBERSHIP_REPORT;
igmp->igmp_code = 0; igmp->igmp_code = 0;
igmp->igmp_group = inm->inm_addr; igmp->igmp_group = inm->inm_addr;
igmp->igmp_cksum = 0; igmp->igmp_cksum = 0;
igmp->igmp_cksum = in_cksum(m, IGMP_MINLEN); igmp->igmp_cksum = in_cksum(m, IGMP_MINLEN);
m->m_data -= sizeof(struct ip);
m->m_len += sizeof(struct ip);
imo = &simo; imo = &simo;
bzero((caddr_t)imo, sizeof(*imo)); bzero((caddr_t)imo, sizeof(*imo));