Home | History | Annotate | Line # | Download | only in generic
      1 /*	$NetBSD: avc_258.c,v 1.11 2026/01/29 18:37:51 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
     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
     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
     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
     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
     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
     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
     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 	DNS_RDATACOMMON_INIT(avc, rdata->type, rdata->rdclass);
     81 
     82 	return generic_tostruct_txt(CALL_TOSTRUCT);
     83 }
     84 
     85 static void
     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 isc_result_t
     96 additionaldata_avc(ARGS_ADDLDATA) {
     97 	REQUIRE(rdata->type == dns_rdatatype_avc);
     98 
     99 	UNUSED(rdata);
    100 	UNUSED(owner);
    101 	UNUSED(add);
    102 	UNUSED(arg);
    103 
    104 	return ISC_R_SUCCESS;
    105 }
    106 
    107 static isc_result_t
    108 digest_avc(ARGS_DIGEST) {
    109 	isc_region_t r;
    110 
    111 	REQUIRE(rdata->type == dns_rdatatype_avc);
    112 
    113 	dns_rdata_toregion(rdata, &r);
    114 
    115 	return (digest)(arg, &r);
    116 }
    117 
    118 static bool
    119 checkowner_avc(ARGS_CHECKOWNER) {
    120 	REQUIRE(type == dns_rdatatype_avc);
    121 
    122 	UNUSED(name);
    123 	UNUSED(type);
    124 	UNUSED(rdclass);
    125 	UNUSED(wildcard);
    126 
    127 	return true;
    128 }
    129 
    130 static bool
    131 checknames_avc(ARGS_CHECKNAMES) {
    132 	REQUIRE(rdata->type == dns_rdatatype_avc);
    133 
    134 	UNUSED(rdata);
    135 	UNUSED(owner);
    136 	UNUSED(bad);
    137 
    138 	return true;
    139 }
    140 
    141 static int
    142 casecompare_avc(ARGS_COMPARE) {
    143 	return compare_avc(rdata1, rdata2);
    144 }
    145 #endif /* RDATA_GENERIC_AVC_258_C */
    146