From 616c83b78b48ae53fa137a63cf4139fc2a04cfb5 Mon Sep 17 00:00:00 2001 From: James Brister Date: Tue, 6 Jun 2000 14:20:03 +0000 Subject: [PATCH] temporarily disable code that validates listen-on and listen-on-v6 lists. --- lib/dns/config/confip.c | 9 +++- lib/dns/config/conflsn.c | 89 ++++++++++++++++++++++++++++++++++-- lib/dns/include/dns/confip.h | 2 +- 3 files changed, 92 insertions(+), 8 deletions(-) diff --git a/lib/dns/config/confip.c b/lib/dns/config/confip.c index d4ea3a95d5..04a01e260a 100644 --- a/lib/dns/config/confip.c +++ b/lib/dns/config/confip.c @@ -15,7 +15,7 @@ * SOFTWARE. */ -/* $Id: confip.c,v 1.25 2000/06/05 22:08:44 brister Exp $ */ +/* $Id: confip.c,v 1.26 2000/06/06 14:20:00 brister Exp $ */ #include @@ -743,7 +743,12 @@ dns_c_ipmatchlist_walk(dns_c_ipmatchlist_t *list, dns_c_ipmlwalker func) while (retval == ISC_TRUE && ipme != NULL) { switch (ipme->type) { case dns_c_ipmatch_pattern: - retval = retval && (*func)(&ipme->u.direct); + case dns_c_ipmatch_key: + case dns_c_ipmatch_localhost: + case dns_c_ipmatch_localnets: + case dns_c_ipmatch_any: + case dns_c_ipmatch_none: + retval = retval && (*func)(ipme); break; case dns_c_ipmatch_indirect: diff --git a/lib/dns/config/conflsn.c b/lib/dns/config/conflsn.c index 331793c231..f0b8f94485 100644 --- a/lib/dns/config/conflsn.c +++ b/lib/dns/config/conflsn.c @@ -15,7 +15,7 @@ * SOFTWARE. */ -/* $Id: conflsn.c,v 1.15 2000/06/05 22:08:45 brister Exp $ */ +/* $Id: conflsn.c,v 1.16 2000/06/06 14:20:01 brister Exp $ */ #include @@ -235,19 +235,80 @@ dns_c_lstnonv6_print(FILE *fp, int indent, dns_c_lstnon_t *lo, } +#if 0 static isc_boolean_t -checklisten_element(dns_c_ipmatch_direct_t *element) +checklisten_element(dns_c_ipmatchelement_t *element) { - return (ISC_TF(isc_sockaddr_pf(&element->address) == AF_INET)); + int pf; + isc_boolean_t ok = ISC_FALSE; + + switch (element->type) { + case dns_c_ipmatch_pattern: + pf = isc_sockaddr_pf(&element->u.direct.address); + ok = ISC_TF(pf == AF_INET); + break; + + case dns_c_ipmatch_key: + case dns_c_ipmatch_localhost: + case dns_c_ipmatch_localnets: + ok = ISC_FALSE; + break; + + case dns_c_ipmatch_any: + case dns_c_ipmatch_none: + ok = ISC_TRUE; + break; + + case dns_c_ipmatch_indirect: + /* XXX shouldn't be reached */ + break; + + case dns_c_ipmatch_acl: + /* XXX handle this. */ + break; + } + + return (ok); } static isc_boolean_t -checkv6listen_element(dns_c_ipmatch_direct_t *element) +checkv6listen_element(dns_c_ipmatchelement_t *element) { - return (ISC_TF(isc_sockaddr_pf(&element->address) == AF_INET6)); + int pf; + isc_boolean_t ok = ISC_FALSE; + + switch (element->type) { + case dns_c_ipmatch_pattern: + pf = isc_sockaddr_pf(&element->u.direct.address); + + ok = ISC_TF(pf == AF_INET6); + break; + + case dns_c_ipmatch_key: + case dns_c_ipmatch_localhost: + case dns_c_ipmatch_localnets: + ok = ISC_FALSE; + break; + + case dns_c_ipmatch_any: + case dns_c_ipmatch_none: + ok = ISC_TRUE; + break; + + case dns_c_ipmatch_indirect: + /* XXX shouldn't be reached */ + break; + + case dns_c_ipmatch_acl: + /* XXX handle this. */ + break; + } + + return (ok); } +#endif /* * Post confirguation load validation of list-on lists. @@ -255,6 +316,8 @@ checkv6listen_element(dns_c_ipmatch_direct_t *element) isc_result_t dns_c_lstnlist_validate(dns_c_lstnlist_t *ll) { +#if 0 + dns_c_lstnon_t *lo; isc_boolean_t checkval; @@ -276,12 +339,21 @@ dns_c_lstnlist_validate(dns_c_lstnlist_t *ll) } return (ISC_R_SUCCESS); + +#else + + UNUSED(ll); + return (ISC_R_SUCCESS); + +#endif } isc_result_t dns_c_lstnlistv6_validate(dns_c_lstnlist_t *ll) { +#if 0 + dns_c_lstnon_t *lo; isc_boolean_t checkval; @@ -303,6 +375,13 @@ dns_c_lstnlistv6_validate(dns_c_lstnlist_t *ll) } return (ISC_R_SUCCESS); + +#else + + UNUSED(ll); + return (ISC_R_SUCCESS); + +#endif } diff --git a/lib/dns/include/dns/confip.h b/lib/dns/include/dns/confip.h index 5cc0ebc403..b20b66cead 100644 --- a/lib/dns/include/dns/confip.h +++ b/lib/dns/include/dns/confip.h @@ -244,7 +244,7 @@ isc_boolean_t dns_c_ipmatchlist_equal(dns_c_ipmatchlist_t *l1, -typedef isc_boolean_t (*dns_c_ipmlwalker)(dns_c_ipmatch_direct_t *element); +typedef isc_boolean_t (*dns_c_ipmlwalker)(dns_c_ipmatchelement_t *element); /* * Recursively decends the list and returns the boolean AND of the return