Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 106 lines (88 sloc) 2.836 kb
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
1 /*
2 * Copyright (c) 1988, 1989, 1990, 1991, 1993, 1994
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that: (1) source code distributions
7 * retain the above copyright notice and this paragraph in its entirety, (2)
8 * distributions including binary code include the above copyright notice and
9 * this paragraph in its entirety in the documentation or other materials
10 * provided with the distribution, and (3) all advertising materials mentioning
11 * features or use of this software display the following acknowledgement:
12 * ``This product includes software developed by the University of California,
13 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
14 * the University nor the names of its contributors may be used to endorse
15 * or promote products derived from this software without specific prior
16 * written permission.
17 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
18 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
20 */
21
bbc1cfa @yuguy Have the configure script arrange that the Makefile define _U_
yuguy authored
22 #ifndef lint
23 static const char rcsid[] _U_ =
a4d5ec5 @yuguy Get rid of an unused variable.
yuguy authored
24 "@(#) $Header: /tcpdump/master/tcpdump/print-rt6.c,v 1.27 2005-04-20 22:34:57 guy Exp $";
bbc1cfa @yuguy Have the configure script arrange that the Makefile define _U_
yuguy authored
25 #endif
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
26
b9ac23c Switch to config.h instead of passing defines in DEFS.
fenner authored
27 #ifdef HAVE_CONFIG_H
28 #include "config.h"
29 #endif
30
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
31 #ifdef INET6
32
3d93249 Added support for Win32, based on WinPcap.
risso authored
33 #include <tcpdump-stdinc.h>
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
34
35 #include <stdio.h>
36
ce132b3 put stripped-down version of ip6.h and icmp6.h into tcpdump tree.
itojun authored
37 #include "ip6.h"
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
38
39 #include "interface.h"
40 #include "addrtoname.h"
fcc82f4 @yuguy The "__attribute__((packed))" tag on structures causes some files not to
yuguy authored
41 #include "extract.h"
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
42
43 int
a4d5ec5 @yuguy Get rid of an unused variable.
yuguy authored
44 rt6_print(register const u_char *bp, const u_char *bp2 _U_)
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
45 {
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
46 register const struct ip6_rthdr *dp;
47 register const struct ip6_rthdr0 *dp0;
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
48 register const u_char *ep;
49 int i, len;
f3b1a28 add mobile-ip6 option handling. patches@tcpdump.org #113
itojun authored
50 register const struct in6_addr *addr;
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
51
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
52 dp = (struct ip6_rthdr *)bp;
53 len = dp->ip6r_len;
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
54
64b4695 typo in comment. from jinmei@kame.net
itojun authored
55 /* 'ep' points to the end of available data. */
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
56 ep = snapend;
57
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
58 TCHECK(dp->ip6r_segleft);
59
837483f update comma/spacing.
itojun authored
60 printf("srcrt (len=%d", dp->ip6r_len); /*)*/
61 printf(", type=%d", dp->ip6r_type);
62 printf(", segleft=%d", dp->ip6r_segleft);
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
63
c9c414d style. s/switch(/switch (/.
itojun authored
64 switch (dp->ip6r_type) {
c176fa7 add fallback for IPV6_RTHDR_TYPE_0, noticed by Juergen Schoenwaelder
assar authored
65 #ifndef IPV6_RTHDR_TYPE_0
66 #define IPV6_RTHDR_TYPE_0 0
67 #endif
86cfeae @yuguy From Kazushi Sugyo <sugyo@pb.jp.nec.com>:
yuguy authored
68 #ifndef IPV6_RTHDR_TYPE_2
69 #define IPV6_RTHDR_TYPE_2 2
70 #endif
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
71 case IPV6_RTHDR_TYPE_0:
c243fe7 @yuguy From Kazushi Sugyo: update to draft-ietf-mobileip-ipv6-20.
yuguy authored
72 case IPV6_RTHDR_TYPE_2: /* Mobile IPv6 ID-20 */
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
73 dp0 = (struct ip6_rthdr0 *)dp;
74
75 TCHECK(dp0->ip6r0_reserved);
76 if (dp0->ip6r0_reserved || vflag) {
837483f update comma/spacing.
itojun authored
77 printf(", rsv=0x%0x",
fcc82f4 @yuguy The "__attribute__((packed))" tag on structures causes some files not to
yuguy authored
78 EXTRACT_32BITS(&dp0->ip6r0_reserved));
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
79 }
80
81 if (len % 2 == 1)
82 goto trunc;
83 len >>= 1;
f3b1a28 add mobile-ip6 option handling. patches@tcpdump.org #113
itojun authored
84 addr = &dp0->ip6r0_addr[0];
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
85 for (i = 0; i < len; i++) {
f3b1a28 add mobile-ip6 option handling. patches@tcpdump.org #113
itojun authored
86 if ((u_char *)(addr + 1) > ep)
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
87 goto trunc;
111ff8a whitespace cleanup
itojun authored
88
f3b1a28 add mobile-ip6 option handling. patches@tcpdump.org #113
itojun authored
89 printf(", [%d]%s", i, ip6addr_string(addr));
90 addr++;
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
91 }
837483f update comma/spacing.
itojun authored
92 /*(*/
93 printf(") ");
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
94 return((dp0->ip6r0_len + 1) << 3);
95 break;
96 default:
97 goto trunc;
98 break;
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
99 }
c4521bb * print-rt6.c: make IPv6 routing header printing work with new 2292bis
itojun authored
100
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
101 trunc:
102 fputs("[|srcrt]", stdout);
988cd2b @yuguy Have various routines for printing non-final headers for IPv4/IPv6
yuguy authored
103 return -1;
c9d84d1 Bring in KAME IPv6 tcpdump. replaces esp/ah/isakmp decoder.
itojun authored
104 }
105 #endif /* INET6 */
Something went wrong with that request. Please try again.