2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 05:57:52 +00:00

add dns_rdata_digest() and dns_rdata_covers()

This commit is contained in:
Bob Halley 1999-08-31 22:08:08 +00:00
parent 3d5a191c6f
commit 0513f89e68
2 changed files with 74 additions and 3 deletions

View File

@ -477,6 +477,51 @@ dns_rdata_additionaldata(dns_rdata_t *rdata, dns_additionaldatafunc_t add,
* Many other results are possible if not successful.
*/
dns_result_t
dns_rdata_digest(dns_rdata_t *rdata, dns_digestfunc_t digest, void *arg);
/*
* Send 'rdata' in DNSSEC canonical form to 'digest'.
*
* Note:
* 'digest' may be called more than once by dns_rdata_digest(). The
* concatenation of all the regions, in the order they were given
* to 'digest', will be the DNSSEC canonical form of 'rdata'.
*
* Requires:
*
* 'rdata' is a valid, non-empty rdata.
*
* 'digest' is a valid dns_digestfunc_t.
*
* Ensures:
*
* If successful, then all of the rdata's data has been sent, in
* DNSSEC canonical form, to 'digest'.
*
* If digest() returns something other than DNS_R_SUCCESS, that result
* will be returned as the result of dns_rdata_digest().
*
* Returns:
*
* DNS_R_SUCCESS
*
* Many other results are possible if not successful.
*/
dns_rdatatype_t
dns_rdata_covers(dns_rdata_t *rdata);
/*
* Return the rdatatype that this type covers.
*
* Requires:
* 'rdata' is a valid, non-empty rdata.
*
* 'rdata' is a type that covers other rdata types.
*
* Returns:
* The type covered.
*/
ISC_LANG_ENDDECLS
#endif /* DNS_RDATA_H */

View File

@ -15,7 +15,7 @@
* SOFTWARE.
*/
/* $Id: rdata.c,v 1.58 1999/08/16 06:45:13 gson Exp $ */
/* $Id: rdata.c,v 1.59 1999/08/31 22:08:07 halley Exp $ */
#include <config.h>
@ -548,7 +548,7 @@ dns_result_t
dns_rdata_additionaldata(dns_rdata_t *rdata, dns_additionaldatafunc_t add,
void *arg)
{
dns_result_t result = ISC_R_SUCCESS;
dns_result_t result = DNS_R_NOTIMPLEMENTED;
isc_boolean_t use_default = ISC_FALSE;
/*
@ -567,6 +567,26 @@ dns_rdata_additionaldata(dns_rdata_t *rdata, dns_additionaldatafunc_t add,
return (result);
}
dns_result_t
dns_rdata_digest(dns_rdata_t *rdata, dns_digestfunc_t digest, void *arg) {
dns_result_t result = DNS_R_NOTIMPLEMENTED;
isc_boolean_t use_default = ISC_FALSE;
/*
* Send 'rdata' in DNSSEC canonical form to 'digest'.
*/
REQUIRE(rdata != NULL);
REQUIRE(digest != NULL);
DIGESTSWITCH
if (use_default)
(void)NULL;
return (result);
}
dns_result_t
dns_rdataclass_fromtext(dns_rdataclass_t *classp, isc_textregion_t *source) {
int i = 0;
@ -1393,7 +1413,13 @@ fromtext_error(void (*callback)(dns_rdatacallbacks_t *, char *, ...),
}
}
static isc_boolean_t ismeta(unsigned int code, struct tbl *table) {
dns_rdatatype_t
dns_rdata_covers(dns_rdata_t *rdata) {
return (covers_sig(rdata));
}
static isc_boolean_t
ismeta(unsigned int code, struct tbl *table) {
struct tbl *t;
REQUIRE(code < 65536);
for (t = table; t->name != NULL; t++) {