1 /*
2 * Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC")
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
9 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
11 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
13 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14 * PERFORMANCE OF THIS SOFTWARE.
15 */
16
17 #ifndef RDATA_GENERIC_NINFO_56_C
18 #define RDATA_GENERIC_NINFO_56_C
19
20 #define RRTYPE_NINFO_ATTRIBUTES (0)
21
22 static inline isc_result_t
fromtext_ninfo(ARGS_FROMTEXT)23 fromtext_ninfo(ARGS_FROMTEXT) {
24
25 REQUIRE(type == dns_rdatatype_ninfo);
26
27 UNUSED(type);
28 UNUSED(rdclass);
29 UNUSED(origin);
30 UNUSED(options);
31 UNUSED(callbacks);
32
33 return (generic_fromtext_txt(rdclass, type, lexer, origin, options,
34 target, callbacks));
35 }
36
37 static inline isc_result_t
totext_ninfo(ARGS_TOTEXT)38 totext_ninfo(ARGS_TOTEXT) {
39
40 UNUSED(tctx);
41
42 REQUIRE(rdata->type == dns_rdatatype_ninfo);
43
44 return (generic_totext_txt(rdata, tctx, target));
45 }
46
47 static inline isc_result_t
fromwire_ninfo(ARGS_FROMWIRE)48 fromwire_ninfo(ARGS_FROMWIRE) {
49
50 REQUIRE(type == dns_rdatatype_ninfo);
51
52 UNUSED(type);
53 UNUSED(dctx);
54 UNUSED(rdclass);
55 UNUSED(options);
56
57 return (generic_fromwire_txt(rdclass, type, source, dctx, options,
58 target));
59 }
60
61 static inline isc_result_t
towire_ninfo(ARGS_TOWIRE)62 towire_ninfo(ARGS_TOWIRE) {
63
64 REQUIRE(rdata->type == dns_rdatatype_ninfo);
65
66 UNUSED(cctx);
67
68 return (mem_tobuffer(target, rdata->data, rdata->length));
69 }
70
71 static inline int
compare_ninfo(ARGS_COMPARE)72 compare_ninfo(ARGS_COMPARE) {
73 isc_region_t r1;
74 isc_region_t r2;
75
76 REQUIRE(rdata1->type == rdata2->type);
77 REQUIRE(rdata1->rdclass == rdata2->rdclass);
78 REQUIRE(rdata1->type == dns_rdatatype_ninfo);
79
80 dns_rdata_toregion(rdata1, &r1);
81 dns_rdata_toregion(rdata2, &r2);
82 return (isc_region_compare(&r1, &r2));
83 }
84
85 static inline isc_result_t
fromstruct_ninfo(ARGS_FROMSTRUCT)86 fromstruct_ninfo(ARGS_FROMSTRUCT) {
87
88 REQUIRE(type == dns_rdatatype_ninfo);
89
90 return (generic_fromstruct_txt(rdclass, type, source, target));
91 }
92
93 static inline isc_result_t
tostruct_ninfo(ARGS_TOSTRUCT)94 tostruct_ninfo(ARGS_TOSTRUCT) {
95 dns_rdata_ninfo_t *txt = target;
96
97 REQUIRE(rdata->type == dns_rdatatype_ninfo);
98
99 txt->common.rdclass = rdata->rdclass;
100 txt->common.rdtype = rdata->type;
101 ISC_LINK_INIT(&txt->common, link);
102
103 return (generic_tostruct_txt(rdata, target, mctx));
104 }
105
106 static inline void
freestruct_ninfo(ARGS_FREESTRUCT)107 freestruct_ninfo(ARGS_FREESTRUCT) {
108 dns_rdata_ninfo_t *ninfo = source;
109
110 REQUIRE(source != NULL);
111 REQUIRE(ninfo->common.rdtype == dns_rdatatype_ninfo);
112
113 generic_freestruct_txt(source);
114 }
115
116 static inline isc_result_t
additionaldata_ninfo(ARGS_ADDLDATA)117 additionaldata_ninfo(ARGS_ADDLDATA) {
118 REQUIRE(rdata->type == dns_rdatatype_ninfo);
119
120 UNUSED(rdata);
121 UNUSED(add);
122 UNUSED(arg);
123
124 return (ISC_R_SUCCESS);
125 }
126
127 static inline isc_result_t
digest_ninfo(ARGS_DIGEST)128 digest_ninfo(ARGS_DIGEST) {
129 isc_region_t r;
130
131 REQUIRE(rdata->type == dns_rdatatype_ninfo);
132
133 dns_rdata_toregion(rdata, &r);
134
135 return ((digest)(arg, &r));
136 }
137
138 static inline isc_boolean_t
checkowner_ninfo(ARGS_CHECKOWNER)139 checkowner_ninfo(ARGS_CHECKOWNER) {
140
141 REQUIRE(type == dns_rdatatype_ninfo);
142
143 UNUSED(name);
144 UNUSED(type);
145 UNUSED(rdclass);
146 UNUSED(wildcard);
147
148 return (ISC_TRUE);
149 }
150
151 static inline isc_boolean_t
checknames_ninfo(ARGS_CHECKNAMES)152 checknames_ninfo(ARGS_CHECKNAMES) {
153
154 REQUIRE(rdata->type == dns_rdatatype_ninfo);
155
156 UNUSED(rdata);
157 UNUSED(owner);
158 UNUSED(bad);
159
160 return (ISC_TRUE);
161 }
162
163 static inline isc_result_t
casecompare_ninfo(ARGS_COMPARE)164 casecompare_ninfo(ARGS_COMPARE) {
165 return (compare_ninfo(rdata1, rdata2));
166 }
167
168 isc_result_t
dns_rdata_ninfo_first(dns_rdata_ninfo_t * ninfo)169 dns_rdata_ninfo_first(dns_rdata_ninfo_t *ninfo) {
170
171 REQUIRE(ninfo != NULL);
172 REQUIRE(ninfo->common.rdtype == dns_rdatatype_ninfo);
173
174 return (generic_txt_first(ninfo));
175 }
176
177 isc_result_t
dns_rdata_ninfo_next(dns_rdata_ninfo_t * ninfo)178 dns_rdata_ninfo_next(dns_rdata_ninfo_t *ninfo) {
179
180 REQUIRE(ninfo != NULL);
181 REQUIRE(ninfo->common.rdtype == dns_rdatatype_ninfo);
182
183 return (generic_txt_next(ninfo));
184 }
185
186 isc_result_t
dns_rdata_ninfo_current(dns_rdata_ninfo_t * ninfo,dns_rdata_ninfo_string_t * string)187 dns_rdata_ninfo_current(dns_rdata_ninfo_t *ninfo,
188 dns_rdata_ninfo_string_t *string)
189 {
190
191 REQUIRE(ninfo != NULL);
192 REQUIRE(ninfo->common.rdtype == dns_rdatatype_ninfo);
193
194 return (generic_txt_current(ninfo, string));
195 }
196 #endif /* RDATA_GENERIC_NINFO_56_C */
197