mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-23 10:37:43 -04:00
Move three more functions to zoneproperties.c
Move the following functions to the zoneproperties source files, as they are simple get functions: - dns_zone_getgluecachestats - dns_zone_getkeystores - dns_zone_getrequesttransporttype
This commit is contained in:
parent
d36d775f0f
commit
a320801042
4 changed files with 102 additions and 101 deletions
|
|
@ -502,18 +502,6 @@ dns_zone_replacedb(dns_zone_t *zone, dns_db_t *db, bool dump);
|
|||
* Others
|
||||
*/
|
||||
|
||||
dns_transport_type_t
|
||||
dns_zone_getrequesttransporttype(dns_zone_t *zone);
|
||||
/*%<
|
||||
* Get the transport type used for the SOA query to the current primary server
|
||||
* before an ongoing incoming zone transfer is lanunched. When the transfer is
|
||||
* already running, this information should be retrieved from the xfrin object
|
||||
* instead, using the dns_xfrin_gettransporttype() function.
|
||||
*
|
||||
* Requires:
|
||||
* \li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_forwardupdate(dns_zone_t *zone, dns_message_t *msg,
|
||||
dns_updatecallback_t callback, void *callback_arg);
|
||||
|
|
@ -939,19 +927,6 @@ dns_zone_setserial(dns_zone_t *zone, uint32_t serial);
|
|||
* Set the zone's serial to 'serial'.
|
||||
*/
|
||||
|
||||
isc_stats_t *
|
||||
dns_zone_getgluecachestats(dns_zone_t *zone);
|
||||
/*%<
|
||||
* Get the glue cache statistics for zone.
|
||||
*
|
||||
* Requires:
|
||||
* \li 'zone' to be a valid zone.
|
||||
*
|
||||
* Returns:
|
||||
* \li if present, a pointer to the statistics set installed in zone;
|
||||
* otherwise NULL.
|
||||
*/
|
||||
|
||||
bool
|
||||
dns_zone_isloaded(dns_zone_t *zone);
|
||||
/*%<
|
||||
|
|
@ -1044,13 +1019,6 @@ dns_zonemgr_setkeystores(dns_zonemgr_t *zmgr, dns_keystorelist_t *keystores);
|
|||
* \li 'keystores' to be a valid.
|
||||
*/
|
||||
|
||||
dns_keystorelist_t *
|
||||
dns_zone_getkeystores(dns_zone_t *zone);
|
||||
/**<
|
||||
* Get the keystores pointer, it should never be NULL once the server is
|
||||
* initialized.
|
||||
*/
|
||||
|
||||
void
|
||||
dns_zone_setplugins(dns_zone_t *zone, void *plugins,
|
||||
void (*plugins_free)(isc_mem_t *, void **));
|
||||
|
|
|
|||
|
|
@ -1525,3 +1525,35 @@ dns_zone_getcfg(dns_zone_t *zone);
|
|||
* Requires:
|
||||
* \li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
dns_transport_type_t
|
||||
dns_zone_getrequesttransporttype(dns_zone_t *zone);
|
||||
/*%<
|
||||
* Get the transport type used for the SOA query to the current primary server
|
||||
* before an ongoing incoming zone transfer is lanunched. When the transfer is
|
||||
* already running, this information should be retrieved from the xfrin object
|
||||
* instead, using the dns_xfrin_gettransporttype() function.
|
||||
*
|
||||
* Requires:
|
||||
* \li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_stats_t *
|
||||
dns_zone_getgluecachestats(dns_zone_t *zone);
|
||||
/*%<
|
||||
* Get the glue cache statistics for zone.
|
||||
*
|
||||
* Requires:
|
||||
* \li 'zone' to be a valid zone.
|
||||
*
|
||||
* Returns:
|
||||
* \li if present, a pointer to the statistics set installed in zone;
|
||||
* otherwise NULL.
|
||||
*/
|
||||
|
||||
dns_keystorelist_t *
|
||||
dns_zone_getkeystores(dns_zone_t *zone);
|
||||
/**<
|
||||
* Get the keystores pointer, it should never be NULL once the server is
|
||||
* initialized.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -15677,63 +15677,6 @@ queue_xfrin(dns_zone_t *zone) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the transport type used for the SOA query to the current primary server
|
||||
* before an ongoing incoming zone transfer.
|
||||
*
|
||||
* Requires:
|
||||
* The zone is locked by the caller.
|
||||
*/
|
||||
static dns_transport_type_t
|
||||
get_request_transport_type(dns_zone_t *zone) {
|
||||
dns_transport_type_t transport_type = DNS_TRANSPORT_NONE;
|
||||
|
||||
if (zone->transport != NULL) {
|
||||
transport_type = dns_transport_get_type(zone->transport);
|
||||
} else {
|
||||
transport_type = (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_USEVC))
|
||||
? DNS_TRANSPORT_TCP
|
||||
: DNS_TRANSPORT_UDP;
|
||||
|
||||
/* Check if the peer is forced to always use TCP. */
|
||||
if (transport_type != DNS_TRANSPORT_TCP &&
|
||||
!dns_remote_done(&zone->primaries))
|
||||
{
|
||||
isc_result_t result;
|
||||
isc_sockaddr_t primaryaddr;
|
||||
isc_netaddr_t primaryip;
|
||||
dns_peer_t *peer = NULL;
|
||||
|
||||
primaryaddr = dns_remote_curraddr(&zone->primaries);
|
||||
isc_netaddr_fromsockaddr(&primaryip, &primaryaddr);
|
||||
result = dns_peerlist_peerbyaddr(zone->view->peers,
|
||||
&primaryip, &peer);
|
||||
if (result == ISC_R_SUCCESS && peer != NULL) {
|
||||
bool usetcp;
|
||||
result = dns_peer_getforcetcp(peer, &usetcp);
|
||||
if (result == ISC_R_SUCCESS && usetcp) {
|
||||
transport_type = DNS_TRANSPORT_TCP;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return transport_type;
|
||||
}
|
||||
|
||||
dns_transport_type_t
|
||||
dns_zone_getrequesttransporttype(dns_zone_t *zone) {
|
||||
dns_transport_type_t transport_type;
|
||||
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
transport_type = get_request_transport_type(zone);
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
return transport_type;
|
||||
}
|
||||
|
||||
/*
|
||||
* Update forwarding support.
|
||||
*/
|
||||
|
|
@ -16099,11 +16042,6 @@ cleanup:
|
|||
isc_mem_put(zone->mctx, buf, buflen);
|
||||
}
|
||||
|
||||
dns_keystorelist_t *
|
||||
dns_zone_getkeystores(dns_zone_t *zone) {
|
||||
return zone->zmgr->keystores;
|
||||
}
|
||||
|
||||
void
|
||||
dns_zone_stopxfr(dns_zone_t *zone) {
|
||||
dns_xfrin_t *xfr = NULL;
|
||||
|
|
@ -20634,13 +20572,6 @@ cleanup:
|
|||
return result;
|
||||
}
|
||||
|
||||
isc_stats_t *
|
||||
dns_zone_getgluecachestats(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
return zone->gluecachestats;
|
||||
}
|
||||
|
||||
bool
|
||||
dns_zone_isloaded(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include <isc/random.h> /* WMM: remove include */
|
||||
|
||||
#include <dns/kasp.h>
|
||||
#include <dns/peer.h>
|
||||
#include <dns/request.h>
|
||||
#include <dns/ssu.h>
|
||||
#include <dns/stats.h>
|
||||
|
|
@ -2048,3 +2049,72 @@ dns_zone_getcfg(dns_zone_t *zone) {
|
|||
|
||||
return zone->cfg;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the transport type used for the SOA query to the current primary server
|
||||
* before an ongoing incoming zone transfer.
|
||||
*
|
||||
* Requires:
|
||||
* The zone is locked by the caller.
|
||||
*/
|
||||
static dns_transport_type_t
|
||||
get_request_transport_type(dns_zone_t *zone) {
|
||||
dns_transport_type_t transport_type = DNS_TRANSPORT_NONE;
|
||||
|
||||
if (zone->transport != NULL) {
|
||||
transport_type = dns_transport_get_type(zone->transport);
|
||||
} else {
|
||||
transport_type = (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_USEVC))
|
||||
? DNS_TRANSPORT_TCP
|
||||
: DNS_TRANSPORT_UDP;
|
||||
|
||||
/* Check if the peer is forced to always use TCP. */
|
||||
if (transport_type != DNS_TRANSPORT_TCP &&
|
||||
!dns_remote_done(&zone->primaries))
|
||||
{
|
||||
isc_result_t result;
|
||||
isc_sockaddr_t primaryaddr;
|
||||
isc_netaddr_t primaryip;
|
||||
dns_peer_t *peer = NULL;
|
||||
|
||||
primaryaddr = dns_remote_curraddr(&zone->primaries);
|
||||
isc_netaddr_fromsockaddr(&primaryip, &primaryaddr);
|
||||
result = dns_peerlist_peerbyaddr(zone->view->peers,
|
||||
&primaryip, &peer);
|
||||
if (result == ISC_R_SUCCESS && peer != NULL) {
|
||||
bool usetcp;
|
||||
result = dns_peer_getforcetcp(peer, &usetcp);
|
||||
if (result == ISC_R_SUCCESS && usetcp) {
|
||||
transport_type = DNS_TRANSPORT_TCP;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return transport_type;
|
||||
}
|
||||
|
||||
dns_transport_type_t
|
||||
dns_zone_getrequesttransporttype(dns_zone_t *zone) {
|
||||
dns_transport_type_t transport_type;
|
||||
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
transport_type = get_request_transport_type(zone);
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
return transport_type;
|
||||
}
|
||||
|
||||
dns_keystorelist_t *
|
||||
dns_zone_getkeystores(dns_zone_t *zone) {
|
||||
return zone->zmgr->keystores;
|
||||
}
|
||||
|
||||
isc_stats_t *
|
||||
dns_zone_getgluecachestats(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
return zone->gluecachestats;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue