2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 06:25:31 +00:00

[master] pass client info to DLZ findzone method

3434.   [bug]           Pass client info to the DLZ findzone() entry
                        point in addition to lookup().  This makes it
                        possible for a database to answer differently
                        whether it's authoritative for a name depending
                        on the address of the client.  [RT #31775]
This commit is contained in:
Evan Hunt
2012-12-06 12:59:36 -08:00
parent 177be355d4
commit abff0f462a
25 changed files with 487 additions and 273 deletions

View File

@@ -1628,7 +1628,10 @@ dns_sdlzdestroy(void *driverdata, void **dbdata) {
static isc_result_t
dns_sdlzfindzone(void *driverarg, void *dbdata, isc_mem_t *mctx,
dns_rdataclass_t rdclass, dns_name_t *name, dns_db_t **dbp)
dns_rdataclass_t rdclass, dns_name_t *name,
dns_clientinfomethods_t *methods,
dns_clientinfo_t *clientinfo,
dns_db_t **dbp)
{
isc_buffer_t b;
char namestr[DNS_NAME_MAXTEXT + 1];
@@ -1656,7 +1659,8 @@ dns_sdlzfindzone(void *driverarg, void *dbdata, isc_mem_t *mctx,
/* Call SDLZ driver's find zone method */
MAYBE_LOCK(imp);
result = imp->methods->findzone(imp->driverarg, dbdata, namestr);
result = imp->methods->findzone(imp->driverarg, dbdata, namestr,
methods, clientinfo);
MAYBE_UNLOCK(imp);
/*