xref: /netbsd-src/external/mpl/dhcp/bind/dist/lib/dns/rdata/generic/avc_258.c (revision 4afad4b7fa6d4a0d3dedf41d1587a7250710ae54)
1 /*	$NetBSD: avc_258.c,v 1.1 2024/02/18 20:57:40 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_AVC_258_C
17 #define RDATA_GENERIC_AVC_258_C
18 
19 #define RRTYPE_AVC_ATTRIBUTES (0)
20 
21 static isc_result_t
fromtext_avc(ARGS_FROMTEXT)22 fromtext_avc(ARGS_FROMTEXT) {
23 	REQUIRE(type == dns_rdatatype_avc);
24 
25 	return (generic_fromtext_txt(CALL_FROMTEXT));
26 }
27 
28 static isc_result_t
totext_avc(ARGS_TOTEXT)29 totext_avc(ARGS_TOTEXT) {
30 	REQUIRE(rdata != NULL);
31 	REQUIRE(rdata->type == dns_rdatatype_avc);
32 
33 	return (generic_totext_txt(CALL_TOTEXT));
34 }
35 
36 static isc_result_t
fromwire_avc(ARGS_FROMWIRE)37 fromwire_avc(ARGS_FROMWIRE) {
38 	REQUIRE(type == dns_rdatatype_avc);
39 
40 	return (generic_fromwire_txt(CALL_FROMWIRE));
41 }
42 
43 static isc_result_t
towire_avc(ARGS_TOWIRE)44 towire_avc(ARGS_TOWIRE) {
45 	REQUIRE(rdata->type == dns_rdatatype_avc);
46 
47 	UNUSED(cctx);
48 
49 	return (mem_tobuffer(target, rdata->data, rdata->length));
50 }
51 
52 static int
compare_avc(ARGS_COMPARE)53 compare_avc(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_avc);
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_avc(ARGS_FROMSTRUCT)67 fromstruct_avc(ARGS_FROMSTRUCT) {
68 	REQUIRE(type == dns_rdatatype_avc);
69 
70 	return (generic_fromstruct_txt(CALL_FROMSTRUCT));
71 }
72 
73 static isc_result_t
tostruct_avc(ARGS_TOSTRUCT)74 tostruct_avc(ARGS_TOSTRUCT) {
75 	dns_rdata_avc_t *avc = target;
76 
77 	REQUIRE(rdata->type == dns_rdatatype_avc);
78 	REQUIRE(avc != NULL);
79 
80 	avc->common.rdclass = rdata->rdclass;
81 	avc->common.rdtype = rdata->type;
82 	ISC_LINK_INIT(&avc->common, link);
83 
84 	return (generic_tostruct_txt(CALL_TOSTRUCT));
85 }
86 
87 static void
freestruct_avc(ARGS_FREESTRUCT)88 freestruct_avc(ARGS_FREESTRUCT) {
89 	dns_rdata_avc_t *avc = source;
90 
91 	REQUIRE(avc != NULL);
92 	REQUIRE(avc->common.rdtype == dns_rdatatype_avc);
93 
94 	generic_freestruct_txt(source);
95 }
96 
97 static isc_result_t
additionaldata_avc(ARGS_ADDLDATA)98 additionaldata_avc(ARGS_ADDLDATA) {
99 	REQUIRE(rdata->type == dns_rdatatype_avc);
100 
101 	UNUSED(rdata);
102 	UNUSED(add);
103 	UNUSED(arg);
104 
105 	return (ISC_R_SUCCESS);
106 }
107 
108 static isc_result_t
digest_avc(ARGS_DIGEST)109 digest_avc(ARGS_DIGEST) {
110 	isc_region_t r;
111 
112 	REQUIRE(rdata->type == dns_rdatatype_avc);
113 
114 	dns_rdata_toregion(rdata, &r);
115 
116 	return ((digest)(arg, &r));
117 }
118 
119 static bool
checkowner_avc(ARGS_CHECKOWNER)120 checkowner_avc(ARGS_CHECKOWNER) {
121 	REQUIRE(type == dns_rdatatype_avc);
122 
123 	UNUSED(name);
124 	UNUSED(type);
125 	UNUSED(rdclass);
126 	UNUSED(wildcard);
127 
128 	return (true);
129 }
130 
131 static bool
checknames_avc(ARGS_CHECKNAMES)132 checknames_avc(ARGS_CHECKNAMES) {
133 	REQUIRE(rdata->type == dns_rdatatype_avc);
134 
135 	UNUSED(rdata);
136 	UNUSED(owner);
137 	UNUSED(bad);
138 
139 	return (true);
140 }
141 
142 static int
casecompare_avc(ARGS_COMPARE)143 casecompare_avc(ARGS_COMPARE) {
144 	return (compare_avc(rdata1, rdata2));
145 }
146 #endif /* RDATA_GENERIC_AVC_258_C */
147