• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/bind9-45.101/bind9/lib/dns/include/dns/

Lines Matching refs:rdata

27 /*! \file dns/rdata.h
29 * Provides facilities for manipulating DNS rdata, including conversions to
32 * Given the large amount of rdata possible in a nameserver, it was important
33 * to come up with a very efficient way of storing rdata, but at the same
36 * The decision was to store rdata in uncompressed wire format,
38 * server know rdata is stored that way. This saves a lot of memory, and
39 * makes adding rdata to messages easy. Having much of the server know
41 * user of rdata to be manipulating such a low-level structure. This is
42 * where the rdata module comes in. The module allows rdata handles to be
43 * created and attached to uncompressed wire format regions. All rdata
49 * build process from a set of source files, one per rdata type. For
51 * program. Adding a new rdata type will be a simple matter of adding
53 * the format of a particular rdata type is in this file.
62 *\li Rdata is typed, and the caller must know what type of rdata it has.
108 ***** An 'rdata' is a handle to a binary region. The handle has an RR
130 #define DNS_RDATA_INITIALIZED(rdata) \
131 ((rdata)->data == NULL && (rdata)->length == 0 && \
132 (rdata)->rdclass == 0 && (rdata)->type == 0 && (rdata)->flags == 0 && \
133 !ISC_LINK_LINKED((rdata), link))
136 #define DNS_RDATA_INITIALIZED(rdata) \
137 (!ISC_LINK_LINKED((rdata), link))
139 #define DNS_RDATA_INITIALIZED(rdata) ISC_TRUE
146 #define DNS_RDATA_VALIDFLAGS(rdata) \
147 (((rdata)->flags & ~(DNS_RDATA_UPDATE|DNS_RDATA_OFFLINE)) == 0)
150 * Flags affecting rdata formatting style. Flags 0xFFFF0000
155 /*% Split the rdata into multiple lines to try to keep it
174 dns_rdata_init(dns_rdata_t *rdata);
176 * Make 'rdata' empty.
179 * 'rdata' is a valid rdata (i.e. not NULL, points to a struct dns_rdata)
183 dns_rdata_reset(dns_rdata_t *rdata);
185 * Make 'rdata' empty.
188 *\li 'rdata' is a previously initialized rdata and is not linked.
213 *\li 'rdata1' is a valid, non-empty rdata
215 *\li 'rdata2' is a valid, non-empty rdata
227 * compares domain names case insensitively in known rdata types that
232 *\li 'rdata1' is a valid, non-empty rdata
234 *\li 'rdata2' is a valid, non-empty rdata
247 dns_rdata_fromregion(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
250 * Make 'rdata' refer to region 'r'.
258 dns_rdata_toregion(const dns_rdata_t *rdata, isc_region_t *r);
260 * Make 'r' refer to 'rdata'.
264 dns_rdata_fromwire(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
269 * Copy the possibly-compressed rdata at source into the target region.
283 * references the rdata to be processed.
291 * \li If 'rdata' is not NULL, it is attached to the target.
293 * for all names in the rdata.
306 dns_rdata_towire(dns_rdata_t *rdata, dns_compress_t *cctx,
309 * Convert 'rdata' into wire format, compressing it as specified by the
317 *\li 'rdata' is a valid, non-empty rdata
335 dns_rdata_fromtext(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
340 * Convert the textual representation of a DNS rdata into uncompressed wire
341 * form stored in the target region. Tokens constituting the text of the rdata
345 *\li Relative domain names in the rdata will have 'origin' appended to them.
375 *\li If 'rdata' is not NULL, it is attached to the target.
378 * for all names in the rdata.
392 dns_rdata_totext(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target);
394 * Convert 'rdata' into text format, storing the result in 'target'.
399 *\li If 'origin' is not NULL, then any names in the rdata that are
407 *\li 'rdata' is a valid, non-empty rdata
425 dns_rdata_tofmttext(dns_rdata_t *rdata, dns_name_t *origin, unsigned int flags,
441 * If (flags & #DNS_STYLEFLAG_MULTILINE) == 0, the rdata is always
452 dns_rdata_fromstruct(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
455 * Convert the C structure representation of an rdata into uncompressed wire
473 * \li If 'rdata' is not NULL, it is attached to the target.
484 dns_rdata_tostruct(dns_rdata_t *rdata, void *target, isc_mem_t *mctx);
486 * Convert an rdata into its C structure representation.
488 * If 'mctx' is NULL then 'rdata' must persist while 'target' is being used.
494 *\li 'rdata' is a valid, non-empty rdata.
517 * Return true iff the rdata type 'type' is a meta-type
524 * Return true iff the rdata type 'type' is a singleton type,
528 * \li 'type' is a valid rdata type.
535 * Return true iff the rdata class 'rdclass' is a meta-class
543 * rdata types that may exist alongside a CNAME record.
546 * \li 'type' is a valid rdata type.
552 * Return true iff rdata of type 'type' is considered authoritative
557 * \li 'type' is a valid rdata type.
564 * Return true iff the rdata type 'type' is known.
567 * \li 'type' is a valid rdata type.
573 dns_rdata_additionaldata(dns_rdata_t *rdata, dns_additionaldatafunc_t add,
576 * Call 'add' for each name and type from 'rdata' which is subject to
581 *\li 'rdata' is a valid, non-empty rdata.
601 dns_rdata_digest(dns_rdata_t *rdata, dns_digestfunc_t digest, void *arg);
603 * Send 'rdata' in DNSSEC canonical form to 'digest'.
608 * to 'digest', will be the DNSSEC canonical form of 'rdata'.
612 *\li 'rdata' is a valid, non-empty rdata.
618 *\li If successful, then all of the rdata's data has been sent, in
634 * Return true iff rdata of type 'type' can only appear in the question
638 * \li 'type' is a valid rdata type.
645 * Return true iff rdata of type 'type' can not appear in the question
649 * \li 'type' is a valid rdata type.
656 * Return true iff rdata of type 'type' should appear at the parent of
660 * \li 'type' is a valid rdata type.
698 dns_rdata_covers(dns_rdata_t *rdata);
703 *\li 'rdata' is a valid, non-empty rdata.
705 *\li 'rdata' is a type that covers other rdata types.
724 dns_rdata_checknames(dns_rdata_t *rdata, dns_name_t *owner, dns_name_t *bad);
726 * Returns whether 'rdata' contains valid domain names. The checks are
731 * the 'rdata' contents.
734 * 'rdata' to be valid.
740 dns_rdata_exists(dns_rdata_t *rdata, dns_rdatatype_t type);
743 dns_rdata_notexist(dns_rdata_t *rdata, dns_rdatatype_t type);
746 dns_rdata_deleterrset(dns_rdata_t *rdata, dns_rdatatype_t type);
749 dns_rdata_makedelete(dns_rdata_t *rdata);
752 dns_rdata_updateop(dns_rdata_t *rdata, dns_section_t section);