Lines Matching defs:rdata
1 /* $NetBSD: rdata.c,v 1.16 2025/01/26 16:25:24 christos Exp $ */
47 #include <dns/rdata.h>
99 dns_rdata_t *rdata, dns_rdata_textctx_t *tctx, isc_buffer_t *target
101 #define CALL_TOTEXT rdata, tctx, target
110 dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target
112 #define CALL_TOWIRE rdata, cctx, target
123 #define ARGS_TOSTRUCT const dns_rdata_t *rdata, void *target, isc_mem_t *mctx
125 #define CALL_TOSTRUCT rdata, target, mctx
132 dns_rdata_t *rdata, const dns_name_t *owner, \
135 #define CALL_ADDLDATA rdata, owner, add, arg
137 #define ARGS_DIGEST dns_rdata_t *rdata, dns_digestfunc_t digest, void *arg
139 #define CALL_DIGEST rdata, digest, arg
148 dns_rdata_t *rdata, const dns_name_t *owner, dns_name_t *bad
150 #define CALL_CHECKNAMES rdata, owner, bad
154 * Contains formatting options for rdata-to-text
160 unsigned int width; /*%< Width of rdata column. */
250 rdata_totext(dns_rdata_t *rdata, dns_rdata_textctx_t *tctx,
265 unknown_totext(dns_rdata_t *rdata, dns_rdata_textctx_t *tctx,
822 dns_rdata_init(dns_rdata_t *rdata) {
823 REQUIRE(rdata != NULL);
825 rdata->data = NULL;
826 rdata->length = 0;
827 rdata->rdclass = 0;
828 rdata->type = 0;
829 rdata->flags = 0;
830 ISC_LINK_INIT(rdata, link);
831 /* ISC_LIST_INIT(rdata->list); */
835 dns_rdata_reset(dns_rdata_t *rdata) {
836 REQUIRE(rdata != NULL);
838 REQUIRE(!ISC_LINK_LINKED(rdata, link));
839 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
841 rdata->data = NULL;
842 rdata->length = 0;
843 rdata->rdclass = 0;
844 rdata->type = 0;
845 rdata->flags = 0;
944 dns_rdata_fromregion(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
946 REQUIRE(rdata != NULL);
947 REQUIRE(DNS_RDATA_INITIALIZED(rdata));
950 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
952 rdata->data = r->base;
953 rdata->length = r->length;
954 rdata->rdclass = rdclass;
955 rdata->type = type;
956 rdata->flags = 0;
960 dns_rdata_toregion(const dns_rdata_t *rdata, isc_region_t *r) {
961 REQUIRE(rdata != NULL);
963 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
965 r->base = rdata->data;
966 r->length = rdata->length;
970 dns_rdata_fromwire(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
981 if (rdata != NULL) {
982 REQUIRE(DNS_RDATA_INITIALIZED(rdata));
983 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
1012 * Reject any rdata that expands out to more than DNS_RDATA_MAXLENGTH
1027 if (rdata != NULL && result == ISC_R_SUCCESS) {
1030 dns_rdata_fromregion(rdata, rdclass, type, ®ion);
1041 dns_rdata_towire(dns_rdata_t *rdata, dns_compress_t *cctx,
1048 REQUIRE(rdata != NULL);
1049 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
1052 * Some DynDNS meta-RRs have empty rdata.
1054 if ((rdata->flags & DNS_RDATA_UPDATE) != 0) {
1055 INSIST(rdata->length == 0);
1065 if (tr.length < rdata->length) {
1068 memmove(tr.base, rdata->data, rdata->length);
1069 isc_buffer_add(target, rdata->length);
1081 * rdata of class 'rdclass' and type 'type', return ISC_R_SUCCESS
1082 * and copy the validated rdata to 'dest'. Otherwise return an error.
1146 dns_rdata_fromtext(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
1165 if (rdata != NULL) {
1166 REQUIRE(DNS_RDATA_INITIALIZED(rdata));
1167 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
1269 if (rdata != NULL && result == ISC_R_SUCCESS) {
1272 dns_rdata_fromregion(rdata, rdclass, type, ®ion);
1281 unknown_totext(dns_rdata_t *rdata, dns_rdata_textctx_t *tctx,
1293 dns_rdata_toregion(rdata, &sr);
1328 rdata_totext(dns_rdata_t *rdata, dns_rdata_textctx_t *tctx,
1334 REQUIRE(rdata != NULL);
1338 * Some DynDNS meta-RRs have empty rdata.
1340 if ((rdata->flags & DNS_RDATA_UPDATE) != 0) {
1341 INSIST(rdata->length == 0);
1346 return unknown_totext(rdata, tctx, target);
1358 result = unknown_totext(rdata, tctx, target);
1365 dns_rdata_totext(dns_rdata_t *rdata, const dns_name_t *origin,
1369 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
1378 return rdata_totext(rdata, &tctx, target);
1382 dns_rdata_tofmttext(dns_rdata_t *rdata, const dns_name_t *origin,
1388 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
1409 return rdata_totext(rdata, &tctx, target);
1413 dns_rdata_fromstruct(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
1422 if (rdata != NULL) {
1423 REQUIRE(DNS_RDATA_INITIALIZED(rdata));
1424 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
1440 if (rdata != NULL && result == ISC_R_SUCCESS) {
1443 dns_rdata_fromregion(rdata, rdclass, type, ®ion);
1452 dns_rdata_tostruct(const dns_rdata_t *rdata, void *target, isc_mem_t *mctx) {
1456 REQUIRE(rdata != NULL);
1457 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
1458 REQUIRE((rdata->flags & DNS_RDATA_UPDATE) == 0);
1478 dns_rdata_additionaldata(dns_rdata_t *rdata, const dns_name_t *owner,
1484 * Call 'add' for each name and type from 'rdata' which is subject to
1488 REQUIRE(rdata != NULL);
1490 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
1503 dns_rdata_digest(dns_rdata_t *rdata, dns_digestfunc_t digest, void *arg) {
1509 * Send 'rdata' in DNSSEC canonical form to 'digest'.
1512 REQUIRE(rdata != NULL);
1514 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
1519 dns_rdata_toregion(rdata, &r);
1536 dns_rdata_checknames(dns_rdata_t *rdata, const dns_name_t *owner,
1903 * Conversion of TXT-like rdata fields without length limits.
2365 dns_rdata_covers(dns_rdata_t *rdata) {
2366 if (rdata->type == dns_rdatatype_rrsig) {
2367 return covers_rrsig(rdata);
2369 return covers_sig(rdata);
2480 dns_rdata_exists(dns_rdata_t *rdata, dns_rdatatype_t type) {
2481 REQUIRE(rdata != NULL);
2482 REQUIRE(DNS_RDATA_INITIALIZED(rdata));
2484 rdata->data = NULL;
2485 rdata->length = 0;
2486 rdata->flags = DNS_RDATA_UPDATE;
2487 rdata->type = type;
2488 rdata->rdclass = dns_rdataclass_any;
2492 dns_rdata_notexist(dns_rdata_t *rdata, dns_rdatatype_t type) {
2493 REQUIRE(rdata != NULL);
2494 REQUIRE(DNS_RDATA_INITIALIZED(rdata));
2496 rdata->data = NULL;
2497 rdata->length = 0;
2498 rdata->flags = DNS_RDATA_UPDATE;
2499 rdata->type = type;
2500 rdata->rdclass = dns_rdataclass_none;
2504 dns_rdata_deleterrset(dns_rdata_t *rdata, dns_rdatatype_t type) {
2505 REQUIRE(rdata != NULL);
2506 REQUIRE(DNS_RDATA_INITIALIZED(rdata));
2508 rdata->data = NULL;
2509 rdata->length = 0;
2510 rdata->flags = DNS_RDATA_UPDATE;
2511 rdata->type = type;
2512 rdata->rdclass = dns_rdataclass_any;
2516 dns_rdata_makedelete(dns_rdata_t *rdata) {
2517 REQUIRE(rdata != NULL);
2519 rdata->rdclass = dns_rdataclass_none;
2523 dns_rdata_updateop(dns_rdata_t *rdata, dns_section_t section) {
2524 REQUIRE(rdata != NULL);
2525 REQUIRE(DNS_RDATA_INITIALIZED(rdata));
2529 switch (rdata->rdclass) {
2531 switch (rdata->type) {
2538 switch (rdata->type) {
2548 switch (rdata->rdclass) {
2552 switch (rdata->type) {
2618 dns_rdata_checksvcb(const dns_name_t *owner, const dns_rdata_t *rdata) {
2623 REQUIRE(rdata != NULL);
2624 REQUIRE(rdata->type == dns_rdatatype_svcb);
2625 REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
2627 result = dns_rdata_tostruct(rdata, &svcb, NULL);