Move dns_dnssec_iszonekey to dns_zonekey_iszonekey, to make the rbtdb not

require all of dst to be linked in.
This commit is contained in:
Brian Wellington
2001-01-17 01:22:20 +00:00
parent 5d0cca62ee
commit 18d110413c
7 changed files with 61 additions and 42 deletions

View File

@@ -13,7 +13,7 @@
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# $Id: Makefile.in,v 1.120 2001/01/17 01:08:03 bwelling Exp $
# $Id: Makefile.in,v 1.121 2001/01/17 01:22:15 bwelling Exp $
srcdir = @srcdir@
VPATH = @srcdir@
@@ -105,7 +105,7 @@ OBJS = a6.@O@ acl.@O@ adb.@O@ byaddr.@O@ \
resolver.@O@ result.@O@ rootns.@O@ sdb.@O@ ssu.@O@ \
stats.@O@ tcpmsg.@O@ time.@O@ timer.@O@ tkey.@O@ \
tsig.@O@ ttl.@O@ validator.@O@ \
version.@O@ view.@O@ xfrin.@O@ zone.@O@ zt.@O@ \
version.@O@ view.@O@ xfrin.@O@ zone.@O@ zonekey.@O@ zt.@O@ \
${OTHEROBJS} ${DSTOBJS} @DST_OPENSSL_OBJS@ ${CONFOBJS}
# Alphabetically
@@ -121,7 +121,7 @@ SRCS = a6.c acl.c adb.c byaddr.c \
resolver.c result.c rootns.c sdb.c ssu.c \
stats.c tcpmsg.c time.c timer.c tkey.c \
tsig.c ttl.c validator.c \
version.c view.c xfrin.c zone.c zt.c ${OTHERSRCS}
version.c view.c xfrin.c zone.c zonekey.c zt.c ${OTHERSRCS}
SUBDIRS = include sec config
TARGETS = include/dns/enumtype.h include/dns/enumclass.h \

View File

@@ -16,7 +16,7 @@
*/
/*
* $Id: dnssec.c,v 1.59 2001/01/09 21:50:49 bwelling Exp $
* $Id: dnssec.c,v 1.60 2001/01/17 01:22:16 bwelling Exp $
*/
@@ -762,26 +762,3 @@ failure:
return (result);
}
isc_boolean_t
dns_dnssec_iszonekey(dns_rdata_t *keyrdata) {
isc_result_t result;
dns_rdata_key_t key;
isc_boolean_t iszonekey = ISC_TRUE;
REQUIRE(keyrdata != NULL);
result = dns_rdata_tostruct(keyrdata, &key, NULL);
if (result != ISC_R_SUCCESS)
return (ISC_FALSE);
if ((key.flags & DNS_KEYTYPE_NOAUTH) != 0)
iszonekey = ISC_FALSE;
if ((key.flags & DNS_KEYFLAG_OWNERMASK) != DNS_KEYOWNER_ZONE)
iszonekey = ISC_FALSE;
if (key.protocol != DNS_KEYPROTO_DNSSEC &&
key.protocol != DNS_KEYPROTO_ANY)
iszonekey = ISC_FALSE;
return (iszonekey);
}

View File

@@ -13,7 +13,7 @@
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# $Id: Makefile.in,v 1.40 2001/01/09 21:52:13 bwelling Exp $
# $Id: Makefile.in,v 1.41 2001/01/17 01:22:19 bwelling Exp $
srcdir = @srcdir@
VPATH = @srcdir@
@@ -36,7 +36,7 @@ HEADERS = a6.h acl.h adb.h byaddr.h cache.h callbacks.h \
rootns.h sdb.h secalg.h secproto.h ssu.h \
tcpmsg.h time.h tkey.h \
tsig.h ttl.h types.h validator.h view.h xfrin.h \
zone.h zt.h
zone.h zonekey.h zt.h
GENHEADERS = enumclass.h enumtype.h rdatastruct.h

View File

@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dnssec.h,v 1.20 2001/01/09 21:52:49 bwelling Exp $ */
/* $Id: dnssec.h,v 1.21 2001/01/17 01:22:20 bwelling Exp $ */
#ifndef DNS_DNSSEC_H
#define DNS_DNSSEC_H 1
@@ -159,15 +159,6 @@ dns_dnssec_verifymessage(isc_buffer_t *source, dns_message_t *msg,
* DST_R_*
*/
isc_boolean_t
dns_dnssec_iszonekey(dns_rdata_t *keyrdata);
/*
* Determines if the key record contained in the rdata is a zone key.
*
* Requires:
* 'keyrdata' is not NULL.
*/
ISC_LANG_ENDDECLS
#endif /* DNS_DNSSEC_H */

View File

@@ -0,0 +1,19 @@
#ifndef DNS_ZONEKEY_H
#define DNS_ZONEKEY_H 1
#include <isc/lang.h>
ISC_LANG_BEGINDECLS
isc_boolean_t
dns_zonekey_iszonekey(dns_rdata_t *keyrdata);
/*
* Determines if the key record contained in the rdata is a zone key.
*
* Requires:
* 'keyrdata' is not NULL.
*/
ISC_LANG_ENDDECLS
#endif /* DNS_ZONEKEY_H */

View File

@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: rbtdb.c,v 1.143 2001/01/12 20:11:28 gson Exp $ */
/* $Id: rbtdb.c,v 1.144 2001/01/17 01:22:17 bwelling Exp $ */
/*
* Principal Author: Bob Halley
@@ -31,7 +31,6 @@
#include <dns/db.h>
#include <dns/dbiterator.h>
#include <dns/dnssec.h>
#include <dns/fixedname.h>
#include <dns/masterdump.h>
#include <dns/rbt.h>
@@ -40,6 +39,7 @@
#include <dns/rdatasetiter.h>
#include <dns/rdataslab.h>
#include <dns/result.h>
#include <dns/zonekey.h>
#ifdef DNS_RBTDB_VERSION64
#include "rbtdb64.h"
@@ -3812,7 +3812,7 @@ endload(dns_db_t *db, dns_dbload_t **dbloadp) {
result = dns_rdataset_first(&keyset);
while (result == ISC_R_SUCCESS) {
dns_rdataset_current(&keyset, &keyrdata);
if (dns_dnssec_iszonekey(&keyrdata)) {
if (dns_zonekey_iszonekey(&keyrdata)) {
rbtdb->secure = ISC_TRUE;
break;
}

32
lib/dns/zonekey.c Normal file
View File

@@ -0,0 +1,32 @@
#include <isc/result.h>
#include <isc/types.h>
#include <isc/util.h>
#include <dns/keyvalues.h>
#include <dns/rdata.h>
#include <dns/rdatastruct.h>
#include <dns/types.h>
#include <dns/zonekey.h>
isc_boolean_t
dns_zonekey_iszonekey(dns_rdata_t *keyrdata) {
isc_result_t result;
dns_rdata_key_t key;
isc_boolean_t iszonekey = ISC_TRUE;
REQUIRE(keyrdata != NULL);
result = dns_rdata_tostruct(keyrdata, &key, NULL);
if (result != ISC_R_SUCCESS)
return (ISC_FALSE);
if ((key.flags & DNS_KEYTYPE_NOAUTH) != 0)
iszonekey = ISC_FALSE;
if ((key.flags & DNS_KEYFLAG_OWNERMASK) != DNS_KEYOWNER_ZONE)
iszonekey = ISC_FALSE;
if (key.protocol != DNS_KEYPROTO_DNSSEC &&
key.protocol != DNS_KEYPROTO_ANY)
iszonekey = ISC_FALSE;
return (iszonekey);
}