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>
