summaryrefslogtreecommitdiffstats
path: root/usr.sbin/mrouted/igmp.c
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1995-05-16 00:28:50 +0000
committerjkh <jkh@FreeBSD.org>1995-05-16 00:28:50 +0000
commit87a603cb4db64797ef2b3bfea6e637abf603a108 (patch)
tree568dda545a8895d56389de42401be9d79d1fb5ed /usr.sbin/mrouted/igmp.c
parente472db9bf5bf92db4b6e3d8bc71bbad2fe61eee3 (diff)
downloadFreeBSD-src-87a603cb4db64797ef2b3bfea6e637abf603a108.zip
FreeBSD-src-87a603cb4db64797ef2b3bfea6e637abf603a108.tar.gz
A number of bug fixes to mrouted (no functionality enhancements from 3.5, just
the fixes!): o Scoped addresses might let traffic in o IGMP queries sent with wrong timeouts o Possible core dump in mtrace if we get a request for which we have no route o If a member on a transit network left a group, mrouted would stop forwarding even if there was a downstream router o Various code cleanups and logging changes Reviewed by: wollman Submitted by: Bill Fenner <fenner@parc.xerox.com>
Diffstat (limited to 'usr.sbin/mrouted/igmp.c')
-rw-r--r--usr.sbin/mrouted/igmp.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/usr.sbin/mrouted/igmp.c b/usr.sbin/mrouted/igmp.c
index ce5c1ce..f7a04df 100644
--- a/usr.sbin/mrouted/igmp.c
+++ b/usr.sbin/mrouted/igmp.c
@@ -109,7 +109,6 @@ static char *packet_kind(type, code)
void accept_igmp(recvlen)
int recvlen;
{
- register vifi_t vifi;
register u_long src, dst, group;
struct ip *ip;
struct igmp *igmp;
@@ -131,7 +130,7 @@ void accept_igmp(recvlen)
* necessary to install a route into the kernel for this.
*/
if (ip->ip_p == 0) {
- if (src == NULL || dst == NULL)
+ if (src == 0 || dst == 0)
log(LOG_WARNING, 0, "kernel request not accurate");
else
add_table_entry(src, dst);
@@ -280,8 +279,12 @@ void send_igmp(src, dst, type, code, group, datalen)
sdst.sin_addr.s_addr = dst;
if (sendto(igmp_socket, send_buf, ip->ip_len, 0,
(struct sockaddr *)&sdst, sizeof(sdst)) < 0) {
- if (errno == ENETDOWN) check_vif_state();
- else log(LOG_WARNING, errno, "sendto on %s", inet_fmt(src, s1));
+ if (errno == ENETDOWN)
+ check_vif_state();
+ else
+ log(LOG_WARNING, errno,
+ "sendto to %s on %s",
+ inet_fmt(dst, s1), inet_fmt(src, s2));
}
if (dst == allhosts_group) k_set_loop(FALSE);
OpenPOWER on IntegriCloud