1 /* $NetBSD: ninfo_56.c,v 1.8 2022/09/23 12:15:31 christos Exp $ */
2
3 /*
4 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
5 *
6 * SPDX-License-Identifier: MPL-2.0
7 *
8 * This Source Code Form is subject to the terms of the Mozilla Public
9 * License, v. 2.0. If a copy of the MPL was not distributed with this
10 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
11 *
12 * See the COPYRIGHT file distributed with this work for additional
13 * information regarding copyright ownership.
14 */
15
16 #ifndef RDATA_GENERIC_NINFO_56_C
17 #define RDATA_GENERIC_NINFO_56_C
18
19 #define RRTYPE_NINFO_ATTRIBUTES (0)
20
21 static isc_result_t
fromtext_ninfo(ARGS_FROMTEXT)22 fromtext_ninfo(ARGS_FROMTEXT) {
23 REQUIRE(type == dns_rdatatype_ninfo);
24
25 return (generic_fromtext_txt(CALL_FROMTEXT));
26 }
27
28 static isc_result_t
totext_ninfo(ARGS_TOTEXT)29 totext_ninfo(ARGS_TOTEXT) {
30 REQUIRE(rdata != NULL);
31 REQUIRE(rdata->type == dns_rdatatype_ninfo);
32
33 return (generic_totext_txt(CALL_TOTEXT));
34 }
35
36 static isc_result_t
fromwire_ninfo(ARGS_FROMWIRE)37 fromwire_ninfo(ARGS_FROMWIRE) {
38 REQUIRE(type == dns_rdatatype_ninfo);
39
40 return (generic_fromwire_txt(CALL_FROMWIRE));
41 }
42
43 static isc_result_t
towire_ninfo(ARGS_TOWIRE)44 towire_ninfo(ARGS_TOWIRE) {
45 REQUIRE(rdata->type == dns_rdatatype_ninfo);
46
47 UNUSED(cctx);
48
49 return (mem_tobuffer(target, rdata->data, rdata->length));
50 }
51
52 static int
compare_ninfo(ARGS_COMPARE)53 compare_ninfo(ARGS_COMPARE) {
54 isc_region_t r1;
55 isc_region_t r2;
56
57 REQUIRE(rdata1->type == rdata2->type);
58 REQUIRE(rdata1->rdclass == rdata2->rdclass);
59 REQUIRE(rdata1->type == dns_rdatatype_ninfo);
60
61 dns_rdata_toregion(rdata1, &r1);
62 dns_rdata_toregion(rdata2, &r2);
63 return (isc_region_compare(&r1, &r2));
64 }
65
66 static isc_result_t
fromstruct_ninfo(ARGS_FROMSTRUCT)67 fromstruct_ninfo(ARGS_FROMSTRUCT) {
68 REQUIRE(type == dns_rdatatype_ninfo);
69
70 return (generic_fromstruct_txt(CALL_FROMSTRUCT));
71 }
72
73 static isc_result_t
tostruct_ninfo(ARGS_TOSTRUCT)74 tostruct_ninfo(ARGS_TOSTRUCT) {
75 dns_rdata_ninfo_t *ninfo = target;
76
77 REQUIRE(rdata->type == dns_rdatatype_ninfo);
78 REQUIRE(ninfo != NULL);
79
80 ninfo->common.rdclass = rdata->rdclass;
81 ninfo->common.rdtype = rdata->type;
82 ISC_LINK_INIT(&ninfo->common, link);
83
84 return (generic_tostruct_txt(CALL_TOSTRUCT));
85 }
86
87 static void
freestruct_ninfo(ARGS_FREESTRUCT)88 freestruct_ninfo(ARGS_FREESTRUCT) {
89 dns_rdata_ninfo_t *ninfo = source;
90
91 REQUIRE(ninfo != NULL);
92 REQUIRE(ninfo->common.rdtype == dns_rdatatype_ninfo);
93
94 generic_freestruct_txt(source);
95 }
96
97 static isc_result_t
additionaldata_ninfo(ARGS_ADDLDATA)98 additionaldata_ninfo(ARGS_ADDLDATA) {
99 REQUIRE(rdata->type == dns_rdatatype_ninfo);
100
101 UNUSED(rdata);
102 UNUSED(add);
103 UNUSED(arg);
104
105 return (ISC_R_SUCCESS);
106 }
107
108 static isc_result_t
digest_ninfo(ARGS_DIGEST)109 digest_ninfo(ARGS_DIGEST) {
110 isc_region_t r;
111
112 REQUIRE(rdata->type == dns_rdatatype_ninfo);
113
114 dns_rdata_toregion(rdata, &r);
115
116 return ((digest)(arg, &r));
117 }
118
119 static bool
checkowner_ninfo(ARGS_CHECKOWNER)120 checkowner_ninfo(ARGS_CHECKOWNER) {
121 REQUIRE(type == dns_rdatatype_ninfo);
122
123 UNUSED(name);
124 UNUSED(type);
125 UNUSED(rdclass);
126 UNUSED(wildcard);
127
128 return (true);
129 }
130
131 static bool
checknames_ninfo(ARGS_CHECKNAMES)132 checknames_ninfo(ARGS_CHECKNAMES) {
133 REQUIRE(rdata->type == dns_rdatatype_ninfo);
134
135 UNUSED(rdata);
136 UNUSED(owner);
137 UNUSED(bad);
138
139 return (true);
140 }
141
142 static int
casecompare_ninfo(ARGS_COMPARE)143 casecompare_ninfo(ARGS_COMPARE) {
144 return (compare_ninfo(rdata1, rdata2));
145 }
146
147 isc_result_t
dns_rdata_ninfo_first(dns_rdata_ninfo_t * ninfo)148 dns_rdata_ninfo_first(dns_rdata_ninfo_t *ninfo) {
149 REQUIRE(ninfo != NULL);
150 REQUIRE(ninfo->common.rdtype == dns_rdatatype_ninfo);
151
152 return (generic_txt_first(ninfo));
153 }
154
155 isc_result_t
dns_rdata_ninfo_next(dns_rdata_ninfo_t * ninfo)156 dns_rdata_ninfo_next(dns_rdata_ninfo_t *ninfo) {
157 REQUIRE(ninfo != NULL);
158 REQUIRE(ninfo->common.rdtype == dns_rdatatype_ninfo);
159
160 return (generic_txt_next(ninfo));
161 }
162
163 isc_result_t
dns_rdata_ninfo_current(dns_rdata_ninfo_t * ninfo,dns_rdata_ninfo_string_t * string)164 dns_rdata_ninfo_current(dns_rdata_ninfo_t *ninfo,
165 dns_rdata_ninfo_string_t *string) {
166 REQUIRE(ninfo != NULL);
167 REQUIRE(ninfo->common.rdtype == dns_rdatatype_ninfo);
168
169 return (generic_txt_current(ninfo, string));
170 }
171 #endif /* RDATA_GENERIC_NINFO_56_C */
172