summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump/print-domain.c
diff options
context:
space:
mode:
authorrpaulo <rpaulo@FreeBSD.org>2009-03-21 18:30:25 +0000
committerrpaulo <rpaulo@FreeBSD.org>2009-03-21 18:30:25 +0000
commita7b30869205bc30a0462ffd9bc6c77fe4d980bd0 (patch)
tree9e93e51a04c09c3b9b900ef6611b8bbd1290f26f /contrib/tcpdump/print-domain.c
parent739eecddb9401ad5ef572c94f0764de2aa04e074 (diff)
parent10d55b9ccc041d249d91faedc3bd1139626bf444 (diff)
downloadFreeBSD-src-a7b30869205bc30a0462ffd9bc6c77fe4d980bd0.zip
FreeBSD-src-a7b30869205bc30a0462ffd9bc6c77fe4d980bd0.tar.gz
Merge tcpdump 4.0.0 from the vendor branch.
Diffstat (limited to 'contrib/tcpdump/print-domain.c')
-rw-r--r--contrib/tcpdump/print-domain.c39
1 files changed, 29 insertions, 10 deletions
diff --git a/contrib/tcpdump/print-domain.c b/contrib/tcpdump/print-domain.c
index 827d1be..39abda5 100644
--- a/contrib/tcpdump/print-domain.c
+++ b/contrib/tcpdump/print-domain.c
@@ -23,7 +23,7 @@
#ifndef lint
static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/print-domain.c,v 1.89.2.8 2007/02/13 19:19:27 guy Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-domain.c,v 1.97.2.1 2007-12-09 01:51:12 guy Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
@@ -389,13 +389,22 @@ ns_rprint(register const u_char *cp, register const u_char *bp, int is_mdns)
printf(" (Cache flush)");
}
- /* ignore ttl */
- cp += 2;
- /* if T_OPT, save opt_flags */
- if (typ == T_OPT)
+ if (typ == T_OPT) {
+ /* get opt flags */
+ cp += 2;
opt_flags = EXTRACT_16BITS(cp);
- /* ignore rest of ttl */
- cp += 2;
+ /* ignore rest of ttl field */
+ cp += 2;
+ } else if (vflag > 2) {
+ /* print ttl */
+ printf(" [");
+ relts_print(EXTRACT_32BITS(cp));
+ printf("]");
+ cp += 4;
+ } else {
+ /* ignore ttl */
+ cp += 4;
+ }
len = EXTRACT_16BITS(cp);
cp += 2;
@@ -410,7 +419,7 @@ ns_rprint(register const u_char *cp, register const u_char *bp, int is_mdns)
case T_A:
if (!TTEST2(*cp, sizeof(struct in_addr)))
return(NULL);
- printf(" %s", ipaddr_string(cp));
+ printf(" %s", intoa(htonl(EXTRACT_32BITS(cp))));
break;
case T_NS:
@@ -477,15 +486,24 @@ ns_rprint(register const u_char *cp, register const u_char *bp, int is_mdns)
#ifdef INET6
case T_AAAA:
+ {
+ struct in6_addr addr;
+ char ntop_buf[INET6_ADDRSTRLEN];
+
if (!TTEST2(*cp, sizeof(struct in6_addr)))
return(NULL);
- printf(" %s", ip6addr_string(cp));
+ memcpy(&addr, cp, sizeof(struct in6_addr));
+ printf(" %s",
+ inet_ntop(AF_INET6, &addr, ntop_buf, sizeof(ntop_buf)));
+
break;
+ }
case T_A6:
{
struct in6_addr a;
int pbit, pbyte;
+ char ntop_buf[INET6_ADDRSTRLEN];
if (!TTEST2(*cp, 1))
return(NULL);
@@ -499,7 +517,8 @@ ns_rprint(register const u_char *cp, register const u_char *bp, int is_mdns)
return(NULL);
memset(&a, 0, sizeof(a));
memcpy(&a.s6_addr[pbyte], cp + 1, sizeof(a) - pbyte);
- printf(" %u %s", pbit, ip6addr_string(&a));
+ printf(" %u %s", pbit,
+ inet_ntop(AF_INET6, &a, ntop_buf, sizeof(ntop_buf)));
}
if (pbit > 0) {
putchar(' ');
OpenPOWER on IntegriCloud