summaryrefslogtreecommitdiffstats
path: root/usr.sbin/mrouted/mapper.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1996-01-06 21:10:30 +0000
committerpeter <peter@FreeBSD.org>1996-01-06 21:10:30 +0000
commitd4c03f31b99ac4bd269582b4d2fee704364a2c1e (patch)
treef1d0a40a2a6e33e9f309cdfe59bfbb0d9a7d4628 /usr.sbin/mrouted/mapper.c
parenta8e9d6a2eaa9df5881201d40c5c05c6154333fef (diff)
downloadFreeBSD-src-d4c03f31b99ac4bd269582b4d2fee704364a2c1e.zip
FreeBSD-src-d4c03f31b99ac4bd269582b4d2fee704364a2c1e.tar.gz
Resync our mainline to mrouted release 3.8.
This will make FreeBSD boxes better behaved 'MBONE Citizens', based on a couple of the comments about the severity of fixes.. Agreed to by: wollman, fenner@parc.xerox.com
Diffstat (limited to 'usr.sbin/mrouted/mapper.c')
-rw-r--r--usr.sbin/mrouted/mapper.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/usr.sbin/mrouted/mapper.c b/usr.sbin/mrouted/mapper.c
index 8c1c5fd..1eacd04 100644
--- a/usr.sbin/mrouted/mapper.c
+++ b/usr.sbin/mrouted/mapper.c
@@ -1,7 +1,7 @@
/* Mapper for connections between MRouteD multicast routers.
* Written by Pavel Curtis <Pavel@PARC.Xerox.Com>
*
- * $Id: mapper.c,v 3.6 1995/06/25 18:59:02 fenner Exp $
+ * $Id: mapper.c,v 3.8 1995/11/29 22:36:57 fenner Rel $
*/
/*
@@ -302,7 +302,7 @@ void accept_neighbors(src, dst, p, datalen, level)
/* if node is running a recent mrouted, ask for additional info */
if (level != 0) {
node->version = level;
- node->tries = 0;
+ node->tries = 1;
ask2(src);
return;
}
@@ -374,7 +374,7 @@ void accept_neighbors(src, dst, p, datalen, level)
for (nb_n = old_neighbors; nb_n; nb_n = nb_n->next)
if (nb_i->addr == nb_n->addr) {
if (nb_i->metric != nb_n->metric
- || nb_i->threshold != nb_i->threshold)
+ || nb_i->threshold != nb_n->threshold)
log(LOG_WARNING, 0,
"inconsistent %s for neighbor %s of %s",
"metric/threshold",
@@ -451,6 +451,8 @@ void accept_neighbors2(src, dst, p, datalen, level)
int datalen;
{
Node *node = find_node(src, &routers);
+ u_int broken_cisco = ((level & 0xffff) == 0x020a); /* 10.2 */
+ /* well, only possibly_broken_cisco, but that's too long to type. */
if (node->tries == 0) /* Never heard of 'em; must have hit them at */
node->tries = 1; /* least once, though...*/
@@ -478,6 +480,11 @@ void accept_neighbors2(src, dst, p, datalen, level)
ncount = *p++;
datalen -= 4 + 4;
+ if (broken_cisco && ncount == 0) /* dumb Ciscos */
+ ncount = 1;
+ if (broken_cisco && ncount > 15) /* dumb Ciscos */
+ ncount = ncount & 0xf;
+
/* Fix up any alias information */
ifc_node = find_node(ifc_addr, &routers);
if (ifc_node->tries == 0) { /* new node */
@@ -837,11 +844,7 @@ int main(argc, argv)
{
int flood = FALSE, graph = FALSE;
-#ifdef SYSV
- setvbuf(stderr, NULL, _IOLBF, 0);
-#else
setlinebuf(stderr);
-#endif
if (geteuid() != 0) {
fprintf(stderr, "must be root\n");
@@ -1017,3 +1020,15 @@ void accept_membership_query(src, dst, group, tmo)
int tmo;
{
}
+void accept_info_request(src, dst, p, datalen)
+ u_int32 src, dst;
+ u_char *p;
+ int datalen;
+{
+}
+void accept_info_reply(src, dst, p, datalen)
+ u_int32 src, dst;
+ u_char *p;
+ int datalen;
+{
+}
OpenPOWER on IntegriCloud