diff options
author | wollman <wollman@FreeBSD.org> | 1995-07-26 18:05:16 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 1995-07-26 18:05:16 +0000 |
commit | 39a85a58ed8d6e8e315fe2b097174f032de724c4 (patch) | |
tree | 0733cadd9ba1a752d85a8046472fba0c995ad24f | |
parent | 94e5a8eb42395728836ef3ee2387fe1f64b655f1 (diff) | |
download | FreeBSD-src-39a85a58ed8d6e8e315fe2b097174f032de724c4.zip FreeBSD-src-39a85a58ed8d6e8e315fe2b097174f032de724c4.tar.gz |
Fix test for determining when RSVP is inactive in a router. (In this
case, multicast options are not passed to ip_mforward().) The previous
version had a wrong test, thus causing RSVP mrouters to forward RSVP messages
in violation of the spec.
-rw-r--r-- | sys/netinet/ip_mroute.c | 6 | ||||
-rw-r--r-- | sys/netinet/ip_output.c | 4 | ||||
-rw-r--r-- | sys/netinet/ip_var.h | 3 |
3 files changed, 7 insertions, 6 deletions
diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index c743469..2fc8340 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -9,7 +9,7 @@ * Modified by Bill Fenner, PARC, April 1995 * * MROUTING Revision: 3.5 - * $Id: ip_mroute.c,v 1.19 1995/06/26 16:15:49 wollman Exp $ + * $Id: ip_mroute.c,v 1.20 1995/07/24 18:15:13 wollman Exp $ */ @@ -52,8 +52,6 @@ #endif #endif -extern int rsvp_on; - #ifndef MROUTING /* * Dummy routines and globals used when multicast routing is not compiled in. @@ -1126,6 +1124,8 @@ X_ip_mforward(ip, ifp, m, imo) if (rsvpdebug && ip->ip_p == IPPROTO_RSVP) { printf("Warning: IPPROTO_RSVP from %x to %x without vif option\n", ntohl(ip->ip_src.s_addr), ntohl(ip->ip_dst.s_addr)); + if(!imo) + printf("In fact, no options were specified at all\n"); } /* diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index e6e3fe2..83e7382 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ip_output.c 8.3 (Berkeley) 1/21/94 - * $Id: ip_output.c,v 1.21 1995/07/01 19:09:40 joerg Exp $ + * $Id: ip_output.c,v 1.22 1995/07/02 16:45:07 joerg Exp $ */ #include <sys/param.h> @@ -247,7 +247,7 @@ ip_output(m0, opt, ro, flags, imo) * is multicast and not just sent down one link * as prescribed by rsvpd. */ - if (ip_rsvpd == NULL) + if (!rsvp_on) imo = NULL; if (ip_mforward(ip, ifp, m, imo) != 0) { m_freem(m); diff --git a/sys/netinet/ip_var.h b/sys/netinet/ip_var.h index a210ab7..028939a 100644 --- a/sys/netinet/ip_var.h +++ b/sys/netinet/ip_var.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ip_var.h 8.1 (Berkeley) 6/10/93 - * $Id: ip_var.h,v 1.11 1995/06/13 17:51:15 wollman Exp $ + * $Id: ip_var.h,v 1.12 1995/06/28 05:13:02 davidg Exp $ */ #ifndef _NETINET_IP_VAR_H_ @@ -161,6 +161,7 @@ extern struct socket *ip_rsvpd; /* reservation protocol daemon */ extern struct socket *ip_mrouter; /* multicast routing daemon */ extern int (*legal_vif_num) __P((int)); extern u_long (*ip_mcast_src) __P((int)); +extern int rsvp_on; int ip_ctloutput __P((int, struct socket *, int, int, struct mbuf **)); void ip_deq __P((struct ipasfrag *)); |