aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/mrouted/mrinfo.c
diff options
context:
space:
mode:
authorBill Fenner <fenner@FreeBSD.org>1999-01-20 07:55:57 +0000
committerBill Fenner <fenner@FreeBSD.org>1999-01-20 07:55:57 +0000
commitec114097dd0922689415e578aa69651b9dd59cb9 (patch)
treee0c29804c98458f333e236268daa04b8de1a8e53 /usr.sbin/mrouted/mrinfo.c
parentb8d4f311c52f1a6ca8355dae7efe79f086c8db59 (diff)
downloadsrc-ec114097dd0922689415e578aa69651b9dd59cb9.tar.gz
src-ec114097dd0922689415e578aa69651b9dd59cb9.zip
Merge conflicts from 3.9-beta3+IOS12. The conflicts were huge; cvs's
merge algorithm failed on several files, and the translation of the mrouted man page to mdoc didn't help...
Notes
Notes: svn path=/head/; revision=42891
Diffstat (limited to 'usr.sbin/mrouted/mrinfo.c')
-rw-r--r--usr.sbin/mrouted/mrinfo.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/usr.sbin/mrouted/mrinfo.c b/usr.sbin/mrouted/mrinfo.c
index b62249e080de..ff8a7b85604c 100644
--- a/usr.sbin/mrouted/mrinfo.c
+++ b/usr.sbin/mrouted/mrinfo.c
@@ -61,7 +61,7 @@
#ifndef lint
static const char rcsid[] =
- "$Id: mrinfo.c,v 1.14 1998/01/16 07:17:43 charnier Exp $";
+ "$Id: mrinfo.c,v 1.15 1998/06/09 05:01:34 imp Exp $";
/* original rcsid:
"@(#) Header: mrinfo.c,v 1.6 93/04/08 15:14:16 van Exp (LBL)";
*/
@@ -238,13 +238,14 @@ accept_neighbors2(src, dst, p, datalen, level)
u_char *ep = p + datalen;
u_int broken_cisco = ((level & 0xffff) == 0x020a); /* 10.2 */
/* well, only possibly_broken_cisco, but that's too long to type. */
+ u_int majvers = level & 0xff;
+ u_int minvers = (level >> 8) & 0xff;
- printf("%s (%s) [version %d.%d", inet_fmt(src, s1), inet_name(src),
- level & 0xff, (level >> 8) & 0xff);
- if ((level >> 16) & NF_LEAF) { printf (",leaf"); }
- if ((level >> 16) & NF_PRUNE) { printf (",prune"); }
- if ((level >> 16) & NF_GENID) { printf (",genid"); }
- if ((level >> 16) & NF_MTRACE) { printf (",mtrace"); }
+ printf("%s (%s) [", inet_fmt(src, s1), inet_name(src));
+ if (majvers == 3 && minvers == 0xff)
+ printf("DVMRPv3 compliant");
+ else
+ printf("version %d.%d", majvers, minvers);
printf ("]:\n");
while (p < ep) {
@@ -397,7 +398,7 @@ main(argc, argv)
int addrlen = sizeof(addr);
addr.sin_family = AF_INET;
-#if (defined(BSD) && (BSD >= 199103))
+#ifdef HAVE_SA_LEN
addr.sin_len = sizeof addr;
#endif
addr.sin_addr.s_addr = target_addr;
@@ -490,7 +491,11 @@ main(argc, argv)
src = ip->ip_src.s_addr;
dst = ip->ip_dst.s_addr;
iphdrlen = ip->ip_hl << 2;
+#ifdef RAW_INPUT_IS_RAW
+ ipdatalen = ntohs(ip->ip_len) - iphdrlen;
+#else
ipdatalen = ip->ip_len;
+#endif
if (iphdrlen + ipdatalen != recvlen) {
log(LOG_WARNING, 0,
"packet shorter (%u bytes) than hdr+data length (%u+%u)",