- mrouted doesn't allow loopback of group-specific queries, thus if a

host sends a leave message for a group that the router is a member of
  that membership gets forgotten until the next general query.
- the second group-specific query generated looks like a general query
  sent to a specific group

Submitted by:	Bill Fenner <fenner@parc.xerox.com>
This commit is contained in:
David Greenman 1995-10-07 03:48:44 +00:00
parent 48d837b22b
commit efb0750d1d

View File

@ -7,7 +7,7 @@
* Leland Stanford Junior University.
*
*
* $Id: igmp.c,v 3.6 1995/06/25 18:52:55 fenner Exp $
* $Id: igmp.c,v 1.7 1995/06/28 17:58:32 wollman Exp $
*/
@ -314,7 +314,8 @@ send_igmp(src, dst, type, code, group, datalen)
IGMP_MINLEN + datalen);
if (IN_MULTICAST(ntohl(dst))) k_set_if(src);
if (dst == allhosts_group) k_set_loop(TRUE);
if (dst == allhosts_group || type == IGMP_HOST_MEMBERSHIP_QUERY)
k_set_loop(TRUE);
bzero(&sdst, sizeof(sdst));
sdst.sin_family = AF_INET;
@ -332,7 +333,8 @@ send_igmp(src, dst, type, code, group, datalen)
inet_fmt(dst, s1), inet_fmt(src, s2));
}
if (dst == allhosts_group) k_set_loop(FALSE);
if (dst == allhosts_group || type == IGMP_HOST_MEMBERSHIP_QUERY)
k_set_loop(FALSE);
log(LOG_DEBUG, 0, "SENT %s from %-15s to %s",
packet_kind(type, code), inet_fmt(src, s1), inet_fmt(dst, s2));