1159. [bug] MD and MF are not permitted to be loaded by RFC1123.

This commit is contained in:
Mark Andrews 2001-12-11 20:37:16 +00:00
parent 8e40433e34
commit ff1b064f5e
4 changed files with 32 additions and 5 deletions

View file

@ -1,3 +1,5 @@
1159. [bug] MD and MF are not permitted to be loaded by RFC1123.
1158. [func] Report the client's address when logging notify
messages.

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: result.h,v 1.83 2001/09/19 21:25:46 gson Exp $ */
/* $Id: result.h,v 1.84 2001/12/11 20:37:16 marka Exp $ */
#ifndef DNS_RESULT_H
#define DNS_RESULT_H 1
@ -116,8 +116,9 @@
#define DNS_R_BADIXFR (ISC_RESULTCLASS_DNS + 77)
#define DNS_R_NOTAUTHORITATIVE (ISC_RESULTCLASS_DNS + 78)
#define DNS_R_NOVALIDKEY (ISC_RESULTCLASS_DNS + 79)
#define DNS_R_OBSOLETE (ISC_RESULTCLASS_DNS + 80)
#define DNS_R_NRESULTS 80 /* Number of results */
#define DNS_R_NRESULTS 81 /* Number of results */
/*
* DNS wire format rcodes.

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: master.c,v 1.131 2001/11/30 03:14:50 marka Exp $ */
/* $Id: master.c,v 1.132 2001/12/11 20:37:14 marka Exp $ */
#include <config.h>
@ -1378,6 +1378,28 @@ load(dns_loadctx_t *lctx) {
if (type == dns_rdatatype_ns && ictx->glue == NULL)
current_has_delegation = ISC_TRUE;
/*
* RFC 1123: MD and MF are not allowed to be loaded from
* master files.
*/
if ((lctx->options & DNS_MASTER_ZONE) != 0 &&
(type == dns_rdatatype_md || type == dns_rdatatype_mf)) {
char typename[DNS_RDATATYPE_FORMATSIZE];
result = DNS_R_OBSOLETE;
dns_rdatatype_format(type, typename, sizeof(typename));
(*callbacks->error)(callbacks,
"%s: %s:%lu: %s '%s': %s",
"dns_master_load", source, line,
"type", typename,
dns_result_totext(result));
if (MANYERRS(lctx, result)) {
SETRESULT(lctx, result);
} else
goto insist_and_cleanup;
}
/*
* Find a rdata structure.
*/

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: result.c,v 1.92 2001/09/19 21:25:44 gson Exp $ */
/* $Id: result.c,v 1.93 2001/12/11 20:37:13 marka Exp $ */
#include <config.h>
@ -120,7 +120,9 @@ static const char *text[DNS_R_NRESULTS] = {
"clocks are unsynchronized", /* 76 DNS_R_CLOCKSKEW */
"IXFR failed", /* 77 DNS_R_BADIXFR */
"not authoritative", /* 78 DNS_R_NOTAUTHORITATIVE */
"no valid KEY" /* 79 DNS_R_NOVALIDKEY */
"no valid KEY", /* 79 DNS_R_NOVALIDKEY */
"obsolete" /* 80 DNS_R_OBSOLETE */
};
static const char *rcode_text[DNS_R_NRCODERESULTS] = {