BIND: update vendor tree to 9.5.2-P2
[dragonfly.git] / contrib / bind / lib / dns / include / dns / rdatalist.h
CommitLineData
bbbf71a3
JL
1/*
2 * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (C) 1999-2001 Internet Software Consortium.
4 *
5 * Permission to use, copy, modify, and/or 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 WITH
10 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15 * PERFORMANCE OF THIS SOFTWARE.
16 */
17
18/* $Id: rdatalist.h,v 1.20.128.2 2008/04/03 06:08:27 tbox Exp $ */
19
20#ifndef DNS_RDATALIST_H
21#define DNS_RDATALIST_H 1
22
23/*****
24 ***** Module Info
25 *****/
26
27/*! \file dns/rdatalist.h
28 * \brief
29 * A DNS rdatalist is a list of rdata of a common type and class.
30 *
31 * MP:
32 *\li Clients of this module must impose any required synchronization.
33 *
34 * Reliability:
35 *\li No anticipated impact.
36 *
37 * Resources:
38 *\li TBS
39 *
40 * Security:
41 *\li No anticipated impact.
42 *
43 * Standards:
44 *\li None.
45 */
46
47#include <isc/lang.h>
48
49#include <dns/types.h>
50
51/*%
52 * Clients may use this type directly.
53 */
54struct dns_rdatalist {
55 dns_rdataclass_t rdclass;
56 dns_rdatatype_t type;
57 dns_rdatatype_t covers;
58 dns_ttl_t ttl;
59 ISC_LIST(dns_rdata_t) rdata;
60 ISC_LINK(dns_rdatalist_t) link;
61};
62
63ISC_LANG_BEGINDECLS
64
65void
66dns_rdatalist_init(dns_rdatalist_t *rdatalist);
67/*%<
68 * Initialize rdatalist.
69 *
70 * Ensures:
71 *\li All fields of rdatalist have been initialized to their default
72 * values.
73 */
74
75isc_result_t
76dns_rdatalist_tordataset(dns_rdatalist_t *rdatalist,
77 dns_rdataset_t *rdataset);
78/*%<
79 * Make 'rdataset' refer to the rdata in 'rdatalist'.
80 *
81 * Note:
82 *\li The caller must ensure that 'rdatalist' remains valid and unchanged
83 * while 'rdataset' is associated with it.
84 *
85 * Requires:
86 *
87 *\li 'rdatalist' is a valid rdatalist.
88 *
89 *\li 'rdataset' is a valid rdataset that is not currently associated with
90 * any rdata.
91 *
92 * Ensures,
93 * on success,
94 *
95 *\li 'rdataset' is associated with the rdata in rdatalist.
96 *
97 * Returns:
98 *\li #ISC_R_SUCCESS
99 */
100
101isc_result_t
102dns_rdatalist_fromrdataset(dns_rdataset_t *rdataset,
103 dns_rdatalist_t **rdatalist);
104/*%<
105 * Point 'rdatalist' to the rdatalist in 'rdataset'.
106 *
107 * Requires:
108 *
109 *\li 'rdatalist' is a pointer to a NULL dns_rdatalist_t pointer.
110 *
111 *\li 'rdataset' is a valid rdataset associated with an rdatalist.
112 *
113 * Ensures,
114 * on success,
115 *
116 *\li 'rdatalist' is pointed to the rdatalist in rdataset.
117 *
118 * Returns:
119 *\li #ISC_R_SUCCESS
120 */
121
122ISC_LANG_ENDDECLS
123
124#endif /* DNS_RDATALIST_H */