Deleted Added
full compact
ns_print.c (156956) ns_print.c (170244)
1/*
2 * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (c) 1996-1999 by Internet Software Consortium.
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
15 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#ifndef lint
1/*
2 * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (c) 1996-1999 by Internet Software Consortium.
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
15 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#ifndef lint
19static const char rcsid[] = "$Id: ns_print.c,v 1.3.2.1.4.7 2004/09/16 07:01:12 marka Exp $";
19static const char rcsid[] = "$Id: ns_print.c,v 1.6.18.4 2005/04/27 05:01:09 sra Exp $";
20#endif
21#include <sys/cdefs.h>
20#endif
21#include <sys/cdefs.h>
22__FBSDID("$FreeBSD: head/lib/libc/nameser/ns_print.c 156956 2006-03-21 15:37:16Z ume $");
22__FBSDID("$FreeBSD: head/lib/libc/nameser/ns_print.c 170244 2007-06-03 17:20:27Z ume $");
23
24/* Import. */
25
26#include "port_before.h"
27
28#include <sys/types.h>
29#include <sys/socket.h>
30

--- 40 unchanged lines hidden (view full) ---

71#define T(x) \
72 do { \
73 if ((x) < 0) \
74 return (-1); \
75 } while (0)
76
77/* Public. */
78
23
24/* Import. */
25
26#include "port_before.h"
27
28#include <sys/types.h>
29#include <sys/socket.h>
30

--- 40 unchanged lines hidden (view full) ---

71#define T(x) \
72 do { \
73 if ((x) < 0) \
74 return (-1); \
75 } while (0)
76
77/* Public. */
78
79/*
80 * int
81 * ns_sprintrr(handle, rr, name_ctx, origin, buf, buflen)
79/*%
82 * Convert an RR to presentation format.
80 * Convert an RR to presentation format.
81 *
83 * return:
82 * return:
84 * Number of characters written to buf, or -1 (check errno).
83 *\li Number of characters written to buf, or -1 (check errno).
85 */
86int
87ns_sprintrr(const ns_msg *handle, const ns_rr *rr,
88 const char *name_ctx, const char *origin,
89 char *buf, size_t buflen)
90{
91 int n;
92
93 n = ns_sprintrrf(ns_msg_base(*handle), ns_msg_size(*handle),
94 ns_rr_name(*rr), ns_rr_class(*rr), ns_rr_type(*rr),
95 ns_rr_ttl(*rr), ns_rr_rdata(*rr), ns_rr_rdlen(*rr),
96 name_ctx, origin, buf, buflen);
97 return (n);
98}
99
84 */
85int
86ns_sprintrr(const ns_msg *handle, const ns_rr *rr,
87 const char *name_ctx, const char *origin,
88 char *buf, size_t buflen)
89{
90 int n;
91
92 n = ns_sprintrrf(ns_msg_base(*handle), ns_msg_size(*handle),
93 ns_rr_name(*rr), ns_rr_class(*rr), ns_rr_type(*rr),
94 ns_rr_ttl(*rr), ns_rr_rdata(*rr), ns_rr_rdlen(*rr),
95 name_ctx, origin, buf, buflen);
96 return (n);
97}
98
100/*
101 * int
102 * ns_sprintrrf(msg, msglen, name, class, type, ttl, rdata, rdlen,
103 * name_ctx, origin, buf, buflen)
99/*%
104 * Convert the fields of an RR into presentation format.
100 * Convert the fields of an RR into presentation format.
101 *
105 * return:
102 * return:
106 * Number of characters written to buf, or -1 (check errno).
103 *\li Number of characters written to buf, or -1 (check errno).
107 */
108int
109ns_sprintrrf(const u_char *msg, size_t msglen,
110 const char *name, ns_class class, ns_type type,
111 u_long ttl, const u_char *rdata, size_t rdlen,
112 const char *name_ctx, const char *origin,
113 char *buf, size_t buflen)
114{

--- 536 unchanged lines hidden (view full) ---

651 }
652
653 case ns_t_tsig: {
654 /* BEW - need to complete this */
655 int n;
656
657 T(len = addname(msg, msglen, &rdata, origin, &buf, &buflen));
658 T(addstr(" ", 1, &buf, &buflen));
104 */
105int
106ns_sprintrrf(const u_char *msg, size_t msglen,
107 const char *name, ns_class class, ns_type type,
108 u_long ttl, const u_char *rdata, size_t rdlen,
109 const char *name_ctx, const char *origin,
110 char *buf, size_t buflen)
111{

--- 536 unchanged lines hidden (view full) ---

648 }
649
650 case ns_t_tsig: {
651 /* BEW - need to complete this */
652 int n;
653
654 T(len = addname(msg, msglen, &rdata, origin, &buf, &buflen));
655 T(addstr(" ", 1, &buf, &buflen));
659 rdata += 8; /* time */
656 rdata += 8; /*%< time */
660 n = ns_get16(rdata); rdata += INT16SZ;
657 n = ns_get16(rdata); rdata += INT16SZ;
661 rdata += n; /* sig */
662 n = ns_get16(rdata); rdata += INT16SZ; /* original id */
658 rdata += n; /*%< sig */
659 n = ns_get16(rdata); rdata += INT16SZ; /*%< original id */
663 sprintf(buf, "%d", ns_get16(rdata));
664 rdata += INT16SZ;
665 addlen(strlen(buf), &buf, &buflen);
666 break;
667 }
668
669 case ns_t_a6: {
670 struct in6_addr a;

--- 70 unchanged lines hidden (view full) ---

741 rdata += n;
742 }
743 return (buf - obuf);
744 }
745}
746
747/* Private. */
748
660 sprintf(buf, "%d", ns_get16(rdata));
661 rdata += INT16SZ;
662 addlen(strlen(buf), &buf, &buflen);
663 break;
664 }
665
666 case ns_t_a6: {
667 struct in6_addr a;

--- 70 unchanged lines hidden (view full) ---

738 rdata += n;
739 }
740 return (buf - obuf);
741 }
742}
743
744/* Private. */
745
749/*
746/*%
750 * size_t
751 * prune_origin(name, origin)
752 * Find out if the name is at or under the current origin.
753 * return:
754 * Number of characters in name before start of origin,
755 * or length of name if origin does not match.
756 * notes:
757 * This function should share code with samedomain().

--- 16 unchanged lines hidden (view full) ---

774 break;
775 }
776 name++;
777 }
778 }
779 return (name - oname);
780}
781
747 * size_t
748 * prune_origin(name, origin)
749 * Find out if the name is at or under the current origin.
750 * return:
751 * Number of characters in name before start of origin,
752 * or length of name if origin does not match.
753 * notes:
754 * This function should share code with samedomain().

--- 16 unchanged lines hidden (view full) ---

771 break;
772 }
773 name++;
774 }
775 }
776 return (name - oname);
777}
778
782/*
779/*%
783 * int
784 * charstr(rdata, edata, buf, buflen)
785 * Format a <character-string> into the presentation buffer.
786 * return:
787 * Number of rdata octets consumed
788 * 0 for protocol format error
789 * -1 for output buffer error
790 * side effects:

--- 39 unchanged lines hidden (view full) ---

830 char **buf, size_t *buflen)
831{
832 size_t newlen, save_buflen = *buflen;
833 char *save_buf = *buf;
834 int n;
835
836 n = dn_expand(msg, msg + msglen, *pp, *buf, *buflen);
837 if (n < 0)
780 * int
781 * charstr(rdata, edata, buf, buflen)
782 * Format a <character-string> into the presentation buffer.
783 * return:
784 * Number of rdata octets consumed
785 * 0 for protocol format error
786 * -1 for output buffer error
787 * side effects:

--- 39 unchanged lines hidden (view full) ---

827 char **buf, size_t *buflen)
828{
829 size_t newlen, save_buflen = *buflen;
830 char *save_buf = *buf;
831 int n;
832
833 n = dn_expand(msg, msg + msglen, *pp, *buf, *buflen);
834 if (n < 0)
838 goto enospc; /* Guess. */
835 goto enospc; /*%< Guess. */
839 newlen = prune_origin(*buf, origin);
840 if (**buf == '\0') {
841 goto root;
842 } else if (newlen == 0U) {
843 /* Use "@" instead of name. */
844 if (newlen + 2 > *buflen)
845 goto enospc; /* No room for "@\0". */
846 (*buf)[newlen++] = '@';

--- 55 unchanged lines hidden (view full) ---

902 *buflen = save_buflen;
903 *buf = save_buf;
904 return (-1);
905 }
906 spaced = 0;
907 }
908 return (spaced);
909}
836 newlen = prune_origin(*buf, origin);
837 if (**buf == '\0') {
838 goto root;
839 } else if (newlen == 0U) {
840 /* Use "@" instead of name. */
841 if (newlen + 2 > *buflen)
842 goto enospc; /* No room for "@\0". */
843 (*buf)[newlen++] = '@';

--- 55 unchanged lines hidden (view full) ---

899 *buflen = save_buflen;
900 *buf = save_buf;
901 return (-1);
902 }
903 spaced = 0;
904 }
905 return (spaced);
906}
907
908/*! \file */