1 /*
2 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
3 *
4 * SPDX-License-Identifier: MPL-2.0
5 *
6 * This Source Code Form is subject to the terms of the Mozilla Public
7 * License, v. 2.0. If a copy of the MPL was not distributed with this
8 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
9 *
10 * See the COPYRIGHT file distributed with this work for additional
11 * information regarding copyright ownership.
12 */
13
14 #ifndef RDATA_GENERIC_AVC_258_C
15 #define RDATA_GENERIC_AVC_258_C
16
17 #define RRTYPE_AVC_ATTRIBUTES (0)
18
19 static inline isc_result_t
fromtext_avc(ARGS_FROMTEXT)20 fromtext_avc(ARGS_FROMTEXT) {
21 REQUIRE(type == dns_rdatatype_avc);
22
23 return (generic_fromtext_txt(CALL_FROMTEXT));
24 }
25
26 static inline isc_result_t
totext_avc(ARGS_TOTEXT)27 totext_avc(ARGS_TOTEXT) {
28 REQUIRE(rdata != NULL);
29 REQUIRE(rdata->type == dns_rdatatype_avc);
30
31 return (generic_totext_txt(CALL_TOTEXT));
32 }
33
34 static inline isc_result_t
fromwire_avc(ARGS_FROMWIRE)35 fromwire_avc(ARGS_FROMWIRE) {
36 REQUIRE(type == dns_rdatatype_avc);
37
38 return (generic_fromwire_txt(CALL_FROMWIRE));
39 }
40
41 static inline isc_result_t
towire_avc(ARGS_TOWIRE)42 towire_avc(ARGS_TOWIRE) {
43 REQUIRE(rdata->type == dns_rdatatype_avc);
44
45 UNUSED(cctx);
46
47 return (mem_tobuffer(target, rdata->data, rdata->length));
48 }
49
50 static inline int
compare_avc(ARGS_COMPARE)51 compare_avc(ARGS_COMPARE) {
52 isc_region_t r1;
53 isc_region_t r2;
54
55 REQUIRE(rdata1->type == rdata2->type);
56 REQUIRE(rdata1->rdclass == rdata2->rdclass);
57 REQUIRE(rdata1->type == dns_rdatatype_avc);
58
59 dns_rdata_toregion(rdata1, &r1);
60 dns_rdata_toregion(rdata2, &r2);
61 return (isc_region_compare(&r1, &r2));
62 }
63
64 static inline isc_result_t
fromstruct_avc(ARGS_FROMSTRUCT)65 fromstruct_avc(ARGS_FROMSTRUCT) {
66 REQUIRE(type == dns_rdatatype_avc);
67
68 return (generic_fromstruct_txt(CALL_FROMSTRUCT));
69 }
70
71 static inline isc_result_t
tostruct_avc(ARGS_TOSTRUCT)72 tostruct_avc(ARGS_TOSTRUCT) {
73 dns_rdata_avc_t *avc = target;
74
75 REQUIRE(rdata->type == dns_rdatatype_avc);
76 REQUIRE(avc != NULL);
77
78 avc->common.rdclass = rdata->rdclass;
79 avc->common.rdtype = rdata->type;
80 ISC_LINK_INIT(&avc->common, link);
81
82 return (generic_tostruct_txt(CALL_TOSTRUCT));
83 }
84
85 static inline void
freestruct_avc(ARGS_FREESTRUCT)86 freestruct_avc(ARGS_FREESTRUCT) {
87 dns_rdata_avc_t *avc = source;
88
89 REQUIRE(avc != NULL);
90 REQUIRE(avc->common.rdtype == dns_rdatatype_avc);
91
92 generic_freestruct_txt(source);
93 }
94
95 static inline isc_result_t
additionaldata_avc(ARGS_ADDLDATA)96 additionaldata_avc(ARGS_ADDLDATA) {
97 REQUIRE(rdata->type == dns_rdatatype_avc);
98
99 UNUSED(rdata);
100 UNUSED(add);
101 UNUSED(arg);
102
103 return (ISC_R_SUCCESS);
104 }
105
106 static inline isc_result_t
digest_avc(ARGS_DIGEST)107 digest_avc(ARGS_DIGEST) {
108 isc_region_t r;
109
110 REQUIRE(rdata->type == dns_rdatatype_avc);
111
112 dns_rdata_toregion(rdata, &r);
113
114 return ((digest)(arg, &r));
115 }
116
117 static inline bool
checkowner_avc(ARGS_CHECKOWNER)118 checkowner_avc(ARGS_CHECKOWNER) {
119 REQUIRE(type == dns_rdatatype_avc);
120
121 UNUSED(name);
122 UNUSED(type);
123 UNUSED(rdclass);
124 UNUSED(wildcard);
125
126 return (true);
127 }
128
129 static inline bool
checknames_avc(ARGS_CHECKNAMES)130 checknames_avc(ARGS_CHECKNAMES) {
131 REQUIRE(rdata->type == dns_rdatatype_avc);
132
133 UNUSED(rdata);
134 UNUSED(owner);
135 UNUSED(bad);
136
137 return (true);
138 }
139
140 static inline int
casecompare_avc(ARGS_COMPARE)141 casecompare_avc(ARGS_COMPARE) {
142 return (compare_avc(rdata1, rdata2));
143 }
144 #endif /* RDATA_GENERIC_AVC_258_C */
145