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