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:
Matthijs Mekking 2026-03-19 17:58:30 +01:00
parent d36d775f0f
commit a320801042
4 changed files with 102 additions and 101 deletions

View file

@ -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 **));

View file

@ -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.
*/

View file

@ -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));

View file

@ -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;
}