summaryrefslogtreecommitdiff
path: root/print-icmp6.c
diff options
context:
space:
mode:
authoritojun <itojun>2000-12-13 07:57:04 +0000
committeritojun <itojun>2000-12-13 07:57:04 +0000
commitf3b1a282845777b4e729ecfe5d0c8b8d669010c5 (patch)
tree33ed3798dc1d2a164568922f10b8e9416f794ec4 /print-icmp6.c
parent8e338956f8cd60e49364585bdfd2f9f5c89975da (diff)
downloadtcpdump-f3b1a282845777b4e729ecfe5d0c8b8d669010c5.tar.gz
add mobile-ip6 option handling. patches@tcpdump.org #113
from Timo Koskiahde.
Diffstat (limited to 'print-icmp6.c')
-rw-r--r--print-icmp6.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/print-icmp6.c b/print-icmp6.c
index 2283a161..b3d8ef97 100644
--- a/print-icmp6.c
+++ b/print-icmp6.c
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-icmp6.c,v 1.41 2000-11-12 15:16:16 itojun Exp $";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-icmp6.c,v 1.42 2000-12-13 07:57:05 itojun Exp $";
#endif
#ifdef HAVE_CONFIG_H
@@ -411,6 +411,7 @@ icmp6_opt_print(register const u_char *bp, int resid)
register const struct nd_opt_prefix_info *opp;
register const struct icmp6_opts_redirect *opr;
register const struct nd_opt_mtu *opm;
+ register const struct nd_opt_advint *opa;
register const u_char *ep;
int opts_len;
#if 0
@@ -476,9 +477,11 @@ icmp6_opt_print(register const u_char *bp, int resid)
TCHECK(opp->nd_opt_pi_prefix);
printf("(prefix info: "); /*)*/
if (opp->nd_opt_pi_flags_reserved & ND_OPT_PI_FLAG_ONLINK)
- printf("L");
+ printf("L");
if (opp->nd_opt_pi_flags_reserved & ND_OPT_PI_FLAG_AUTO)
- printf("A");
+ printf("A");
+ if (opp->nd_opt_pi_flags_reserved & ND_OPT_PI_FLAG_ROUTER)
+ printf("R");
if (opp->nd_opt_pi_flags_reserved)
printf(" ");
printf("valid_ltime=");
@@ -522,6 +525,17 @@ icmp6_opt_print(register const u_char *bp, int resid)
icmp6_opt_print((const u_char *)op + (op->nd_opt_len << 3),
resid - (op->nd_opt_len << 3));
break;
+ case ND_OPT_ADVINT:
+ opa = (struct nd_opt_advint *)op;
+ TCHECK(opa->nd_opt_advint_advint);
+ printf("(advint: "); /*)*/
+ printf("advint=%u",
+ (u_int32_t)ntohl(opa->nd_opt_advint_advint));
+ /*(*/
+ printf(")");
+ icmp6_opt_print((const u_char *)op + (op->nd_opt_len << 3),
+ resid - (op->nd_opt_len << 3));
+ break;
default:
opts_len = op->nd_opt_len;
printf("(unknwon opt_type=%d, opt_len=%d)",