Deleted Added
full compact
21c21
< * $FreeBSD: head/contrib/tcpdump/print-domain.c 98527 2002-06-21 00:49:02Z fenner $
---
> * $FreeBSD: head/contrib/tcpdump/print-domain.c 127675 2004-03-31 14:57:24Z bms $
25,26c25,26
< static const char rcsid[] =
< "@(#) $Header: /tcpdump/master/tcpdump/print-domain.c,v 1.78 2001/10/19 09:00:48 guy Exp $ (LBL)";
---
> static const char rcsid[] _U_ =
> "@(#) $Header: /tcpdump/master/tcpdump/print-domain.c,v 1.86.2.3 2004/03/28 20:54:00 fenner Exp $ (LBL)";
33,34c33
< #include <sys/param.h>
< #include <sys/time.h>
---
> #include <tcpdump-stdinc.h>
36,37d34
< #include <netinet/in.h>
<
62c59
< ns_nskip(register const u_char *cp, register const u_char *bp)
---
> ns_nskip(register const u_char *cp)
68,69c65
< if (((i = *cp++) & INDIR_MASK) == INDIR_MASK)
< return (cp + 1);
---
> i = *cp++;
70a67,68
> if ((i & INDIR_MASK) == INDIR_MASK)
> return (cp + 1);
96d93
< int truncated = 0;
105,108c102
< if ((lim = cp + 1 + slen) > snapend) {
< truncated = 1;
< lim = snapend;
< }
---
> lim = cp + 1 + slen;
112c106,107
< for (bitp = cp + 1, b = bitlen; bitp < lim && b > 7; b -= 8, bitp++)
---
> for (bitp = cp + 1, b = bitlen; bitp < lim && b > 7; b -= 8, bitp++) {
> TCHECK(*bitp);
114,116c109,111
< if (bitp == lim)
< printf("...");
< else if (b > 4) {
---
> }
> if (b > 4) {
> TCHECK(*bitp);
119a115
> TCHECK(*bitp);
124,125c120,123
<
< return(truncated ? NULL : lim);
---
> return lim;
> trunc:
> printf(".../%d]", bitlen);
> return NULL;
160c158
< if ((l = labellen(cp)) < 0)
---
> if ((l = labellen(cp)) == (u_int)-1)
180c178
< if ((l = labellen(cp)) < 0)
---
> if ((l = labellen(cp)) == (u_int)-1)
219c217
< if ((l = labellen(cp)) < 0)
---
> if ((l = labellen(cp)) == (u_int)-1)
235c233
< ns_cprint(register const u_char *cp, register const u_char *bp)
---
> ns_cprint(register const u_char *cp)
246a245
> /* http://www.iana.org/assignments/dns-parameters */
248,269c247,268
< { T_A, "A" },
< { T_NS, "NS" },
< { T_MD, "MD" },
< { T_MF, "MF" },
< { T_CNAME, "CNAME" },
< { T_SOA, "SOA" },
< { T_MB, "MB" },
< { T_MG, "MG" },
< { T_MR, "MR" },
< { T_NULL, "NULL" },
< { T_WKS, "WKS" },
< { T_PTR, "PTR" },
< { T_HINFO, "HINFO" },
< { T_MINFO, "MINFO" },
< { T_MX, "MX" },
< { T_TXT, "TXT" },
< { T_RP, "RP" },
< { T_AFSDB, "AFSDB" },
< { T_X25, "X25" },
< { T_ISDN, "ISDN" },
< { T_RT, "RT" },
< { T_NSAP, "NSAP" },
---
> { T_A, "A" }, /* RFC 1035 */
> { T_NS, "NS" }, /* RFC 1035 */
> { T_MD, "MD" }, /* RFC 1035 */
> { T_MF, "MF" }, /* RFC 1035 */
> { T_CNAME, "CNAME" }, /* RFC 1035 */
> { T_SOA, "SOA" }, /* RFC 1035 */
> { T_MB, "MB" }, /* RFC 1035 */
> { T_MG, "MG" }, /* RFC 1035 */
> { T_MR, "MR" }, /* RFC 1035 */
> { T_NULL, "NULL" }, /* RFC 1035 */
> { T_WKS, "WKS" }, /* RFC 1035 */
> { T_PTR, "PTR" }, /* RFC 1035 */
> { T_HINFO, "HINFO" }, /* RFC 1035 */
> { T_MINFO, "MINFO" }, /* RFC 1035 */
> { T_MX, "MX" }, /* RFC 1035 */
> { T_TXT, "TXT" }, /* RFC 1035 */
> { T_RP, "RP" }, /* RFC 1183 */
> { T_AFSDB, "AFSDB" }, /* RFC 1183 */
> { T_X25, "X25" }, /* RFC 1183 */
> { T_ISDN, "ISDN" }, /* RFC 1183 */
> { T_RT, "RT" }, /* RFC 1183 */
> { T_NSAP, "NSAP" }, /* RFC 1706 */
271,285c270,284
< { T_SIG, "SIG" },
< { T_KEY, "KEY" },
< { T_PX, "PX" },
< { T_GPOS, "GPOS" },
< { T_AAAA, "AAAA" },
< { T_LOC, "LOC" },
< { T_NXT, "NXT" },
< { T_EID, "EID" },
< { T_NIMLOC, "NIMLOC" },
< { T_SRV, "SRV" },
< { T_ATMA, "ATMA" },
< { T_NAPTR, "NAPTR" },
< { T_A6, "A6" },
< { T_DNAME, "DNAME" },
< { T_OPT, "OPT" },
---
> { T_SIG, "SIG" }, /* RFC 2535 */
> { T_KEY, "KEY" }, /* RFC 2535 */
> { T_PX, "PX" }, /* RFC 2163 */
> { T_GPOS, "GPOS" }, /* RFC 1712 */
> { T_AAAA, "AAAA" }, /* RFC 1886 */
> { T_LOC, "LOC" }, /* RFC 1876 */
> { T_NXT, "NXT" }, /* RFC 2535 */
> { T_EID, "EID" }, /* Nimrod */
> { T_NIMLOC, "NIMLOC" }, /* Nimrod */
> { T_SRV, "SRV" }, /* RFC 2782 */
> { T_ATMA, "ATMA" }, /* ATM Forum */
> { T_NAPTR, "NAPTR" }, /* RFC 2168, RFC 2915 */
> { T_A6, "A6" }, /* RFC 2874 */
> { T_DNAME, "DNAME" }, /* RFC 2672 */
> { T_OPT, "OPT" }, /* RFC 2671 */
291,296c290,295
< { T_TKEY, "TKEY" },
< { T_TSIG, "TSIG" },
< { T_IXFR, "IXFR" },
< { T_AXFR, "AXFR" },
< { T_MAILB, "MAILB" },
< { T_MAILA, "MAILA" },
---
> { T_TKEY, "TKEY" }, /* RFC 2930 */
> { T_TSIG, "TSIG" }, /* RFC 2845 */
> { T_IXFR, "IXFR" }, /* RFC 1995 */
> { T_AXFR, "AXFR" }, /* RFC 1035 */
> { T_MAILB, "MAILB" }, /* RFC 1035 */
> { T_MAILA, "MAILA" }, /* RFC 1035 */
311c310
< ns_qprint(register const u_char *cp, register const u_char *bp)
---
> ns_qprint(register const u_char *cp, register const u_char *bp, int is_mdns)
316c315
< cp = ns_nskip(cp, bp);
---
> cp = ns_nskip(cp);
322,323c321,322
< i = *cp++ << 8;
< i |= *cp++;
---
> i = EXTRACT_16BITS(cp);
> cp += 2;
325,327c324,328
< i = *cp++ << 8;
< i |= *cp++;
< if (i != C_IN)
---
> i = EXTRACT_16BITS(cp);
> cp += 2;
> if (is_mdns && i == (C_IN|C_CACHE_FLUSH))
> printf(" (Cache flush)");
> else if (i != C_IN)
337c338
< ns_rprint(register const u_char *cp, register const u_char *bp)
---
> ns_rprint(register const u_char *cp, register const u_char *bp, int is_mdns)
348c349
< cp = ns_nskip(cp, bp);
---
> cp = ns_nskip(cp);
354,358c355,361
< typ = *cp++ << 8;
< typ |= *cp++;
< class = *cp++ << 8;
< class |= *cp++;
< if (class != C_IN && typ != T_OPT)
---
> typ = EXTRACT_16BITS(cp);
> cp += 2;
> class = EXTRACT_16BITS(cp);
> cp += 2;
> if (is_mdns && class == (C_IN|C_CACHE_FLUSH))
> printf(" (Cache flush)");
> else if (class != C_IN && typ != T_OPT)
364,365c367,368
< len = *cp++ << 8;
< len |= *cp++;
---
> len = EXTRACT_16BITS(cp);
> cp += 2;
422a426,435
> while (cp < rp) {
> printf(" \"");
> cp = ns_cprint(cp);
> if (cp == NULL)
> return(NULL);
> putchar('"');
> }
> break;
>
> case T_SRV:
424c437,442
< (void)ns_cprint(cp, bp);
---
> if (!TTEST2(*cp, 6))
> return(NULL);
> if (ns_nprint(cp + 6, bp) == NULL)
> return(NULL);
> printf(":%d %d %d", EXTRACT_16BITS(cp + 4),
> EXTRACT_16BITS(cp), EXTRACT_16BITS(cp + 2));
509c527
< ns_print(register const u_char *bp, u_int length)
---
> ns_print(register const u_char *bp, u_int length, int is_mdns)
513a532
> u_int16_t b2;
518,521c537,540
< qdcount = ntohs(np->qdcount);
< ancount = ntohs(np->ancount);
< nscount = ntohs(np->nscount);
< arcount = ntohs(np->arcount);
---
> qdcount = EXTRACT_16BITS(&np->qdcount);
> ancount = EXTRACT_16BITS(&np->ancount);
> nscount = EXTRACT_16BITS(&np->nscount);
> arcount = EXTRACT_16BITS(&np->arcount);
526c545
< ntohs(np->id),
---
> EXTRACT_16BITS(&np->id),
532c551
< DNS_CD(np)? "%" : "");
---
> DNS_AD(np)? "$" : "");
539c558
< if (qdcount < ntohs(np->qdcount) - 1)
---
> if (qdcount < EXTRACT_16BITS(&np->qdcount) - 1)
543c562
< if ((cp = ns_qprint(cp, bp)) == NULL)
---
> if ((cp = ns_qprint(cp, bp, is_mdns)) == NULL)
546c565
< if ((cp = ns_nskip(cp, bp)) == NULL)
---
> if ((cp = ns_nskip(cp)) == NULL)
553c572
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
557c576
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
567c586
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
571c590
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
579c598
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
583c602
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
593c612
< printf(" %d%s%s%s", ntohs(np->id), ns_ops[DNS_OPCODE(np)],
---
> printf(" %d%s%s%s", EXTRACT_16BITS(&np->id), ns_ops[DNS_OPCODE(np)],
595c614
< DNS_AD(np) ? "$" : "");
---
> DNS_CD(np) ? "%" : "");
598,599c617,619
< if (*(((u_short *)np)+1) & htons(0x6cf))
< printf(" [b2&3=0x%x]", ntohs(*(((u_short *)np)+1)));
---
> b2 = EXTRACT_16BITS(((u_short *)np)+1);
> if (b2 & 0x6cf)
> printf(" [b2&3=0x%x]", b2);
620c640
< cp = ns_qprint(cp, (const u_char *)np);
---
> cp = ns_qprint(cp, (const u_char *)np, is_mdns);
625c645,646
< (const u_char *)np);
---
> (const u_char *)np,
> is_mdns);
636c657
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
640c661
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
648c669
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
652c673
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
660c681
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)
664c685
< if ((cp = ns_rprint(cp, bp)) == NULL)
---
> if ((cp = ns_rprint(cp, bp, is_mdns)) == NULL)