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:
@@ -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 \
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
19
lib/dns/include/dns/zonekey.h
Normal file
19
lib/dns/include/dns/zonekey.h
Normal 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 */
|
||||
@@ -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
32
lib/dns/zonekey.c
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user