Date: Wed, 22 Mar 1995 07:01:23 -0500 From: Jeffrey C Honig <jch@nr-tech.cit.cornell.edu> To: gated-alpha@gated.cornell.edu Cc: freebsd-questions@FreeBSD.org Subject: Re: Gated is crashing my system! Message-ID: <199503221201.HAA04926@mitchell.cit.cornell.edu> In-Reply-To: Message from Thomas Pusateri <pusateri@netedge.com> on Tue, 21 Mar 1995 14:38:14 -0500.<9503211938.AA04017@NetEdge.COM>
next in thread | previous in thread | raw e-mail | index | archive | help
> I don't have it handy, but maybe Jeff can send it to anyone interested > or I'll try and dig it up. Here is Tom's patch. Jeff *** in.c.latest Sun May 29 22:30:14 1994 --- in.c Tue Sep 13 10:21:05 1994 *************** *** 48,53 **** --- 48,60 ---- #include "in_var.h" #ifdef INET + #ifdef MULTICAST + /* + * save list of multicast addresses when interface addresses are changed + */ + static struct in_multi *in_multisave = 0; + #endif /* MULTICAST */ + /* * Formulate an Internet address from network + host. */ *************** *** 459,464 **** --- 466,475 ---- else printf("Didn't unlink inifadr from list\n"); } + #ifdef MULTICAST + /* save multicast addresses for change of address */ + in_multisave = oia->ia_multiaddrs; + #endif /* MULTICAST */ (void) m_free(dtom(oia)); break; *************** *** 573,580 **** if (ifp->if_flags & IFF_MULTICAST) { struct in_addr addr; ! addr.s_addr = htonl(INADDR_ALLHOSTS_GROUP); ! in_addmulti(&addr, ifp); } #endif return (error); --- 584,597 ---- if (ifp->if_flags & IFF_MULTICAST) { struct in_addr addr; ! if (in_multisave && in_multisave->inm_ifp == ifp) { ! ia->ia_multiaddrs = in_multisave; ! } ! else { ! addr.s_addr = htonl(INADDR_ALLHOSTS_GROUP); ! in_addmulti(&addr, ifp); ! } ! in_multisave = (struct in_multi *) 0; } #endif return (error);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199503221201.HAA04926>