mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 05:57:52 +00:00
Style cleanup in DLZ LDAP driver. No functional change, no CHANGES note.
This commit is contained in:
parent
c85677097d
commit
5d35a7a2fb
@ -15,7 +15,7 @@
|
||||
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
|
||||
* USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* The development of Dynamically Loadable Zones (DLZ) for Bind 9 was
|
||||
* The development of Dynamically Loadable Zones (DLZ) for BIND 9 was
|
||||
* conceived and contributed by Rob Butler.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
@ -102,7 +102,6 @@ static dns_sdlzimplementation_t *dlz_ldap = NULL;
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
|
||||
#ifdef ISC_PLATFORM_USETHREADS
|
||||
db_list_t *db; /*%< handle to a list of DB */
|
||||
#else
|
||||
@ -113,7 +112,6 @@ typedef struct {
|
||||
char *cred; /*%< password for simple authentication method */
|
||||
int protocol; /*%< LDAP communication protocol version */
|
||||
char *hosts; /*%< LDAP server hosts */
|
||||
|
||||
} ldap_instance_t;
|
||||
|
||||
/* forward references */
|
||||
@ -129,10 +127,8 @@ dlz_ldap_destroy(void *driverarg, void *dbdata);
|
||||
*/
|
||||
|
||||
/*% checks that the LDAP URL parameters make sense */
|
||||
|
||||
static isc_result_t
|
||||
dlz_ldap_checkURL(char *URL, int attrCnt, const char *msg) {
|
||||
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
int ldap_result;
|
||||
LDAPURLDesc *ldap_url = NULL;
|
||||
@ -199,17 +195,15 @@ dlz_ldap_checkURL(char *URL, int attrCnt, const char *msg) {
|
||||
}
|
||||
|
||||
cleanup:
|
||||
|
||||
if (ldap_url != NULL)
|
||||
ldap_free_urldesc(ldap_url);
|
||||
|
||||
return result;
|
||||
return (result);
|
||||
}
|
||||
/*% Connects / reconnects to LDAP server */
|
||||
|
||||
/*% Connects / reconnects to LDAP server */
|
||||
static isc_result_t
|
||||
dlz_ldap_connect(ldap_instance_t *dbi, dbinstance_t *dbc) {
|
||||
|
||||
isc_result_t result;
|
||||
int ldap_result;
|
||||
|
||||
@ -224,7 +218,7 @@ dlz_ldap_connect(ldap_instance_t *dbi, dbinstance_t *dbc) {
|
||||
/* initialize. */
|
||||
dbc->dbconn = ldap_init(dbi->hosts, LDAP_PORT);
|
||||
if (dbc->dbconn == NULL)
|
||||
return ISC_R_NOMEMORY;
|
||||
return (ISC_R_NOMEMORY);
|
||||
|
||||
/* set protocol version. */
|
||||
ldap_result = ldap_set_option((LDAP *) dbc->dbconn,
|
||||
@ -243,7 +237,7 @@ dlz_ldap_connect(ldap_instance_t *dbi, dbinstance_t *dbc) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
return ISC_R_SUCCESS;
|
||||
return (ISC_R_SUCCESS);
|
||||
|
||||
cleanup:
|
||||
|
||||
@ -253,7 +247,7 @@ dlz_ldap_connect(ldap_instance_t *dbi, dbinstance_t *dbc) {
|
||||
dbc->dbconn = NULL;
|
||||
}
|
||||
|
||||
return result;
|
||||
return (result);
|
||||
}
|
||||
|
||||
#ifdef ISC_PLATFORM_USETHREADS
|
||||
@ -265,9 +259,7 @@ dlz_ldap_connect(ldap_instance_t *dbi, dbinstance_t *dbc) {
|
||||
* multithreaded operation.
|
||||
*/
|
||||
static void
|
||||
ldap_destroy_dblist(db_list_t *dblist)
|
||||
{
|
||||
|
||||
ldap_destroy_dblist(db_list_t *dblist) {
|
||||
dbinstance_t *ndbi = NULL;
|
||||
dbinstance_t *dbi = NULL;
|
||||
|
||||
@ -299,10 +291,8 @@ ldap_destroy_dblist(db_list_t *dblist)
|
||||
* This function is only used when the driver is compiled for
|
||||
* multithreaded operation.
|
||||
*/
|
||||
|
||||
static dbinstance_t *
|
||||
ldap_find_avail_conn(db_list_t *dblist)
|
||||
{
|
||||
ldap_find_avail_conn(db_list_t *dblist) {
|
||||
dbinstance_t *dbi = NULL;
|
||||
dbinstance_t *head;
|
||||
int count = 0;
|
||||
@ -314,7 +304,7 @@ ldap_find_avail_conn(db_list_t *dblist)
|
||||
while (count < dbc_search_limit) {
|
||||
/* try to lock on the mutex */
|
||||
if (isc_mutex_trylock(&dbi->instance_lock) == ISC_R_SUCCESS)
|
||||
return dbi; /* success, return the DBI for use. */
|
||||
return (dbi); /* success, return the DBI for use. */
|
||||
|
||||
/* not successful, keep trying */
|
||||
dbi = ISC_LIST_NEXT(dbi, link);
|
||||
@ -330,9 +320,8 @@ ldap_find_avail_conn(db_list_t *dblist)
|
||||
"LDAP driver unable to find available connection "
|
||||
"after searching %d times",
|
||||
count);
|
||||
return NULL;
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
#endif /* ISC_PLATFORM_USETHREADS */
|
||||
|
||||
static isc_result_t
|
||||
@ -361,12 +350,11 @@ ldap_process_results(LDAP *dbc, LDAPMessage *msg, char ** attrs,
|
||||
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
|
||||
DNS_LOGMODULE_DLZ, ISC_LOG_INFO,
|
||||
"LDAP no entries to process.");
|
||||
return ISC_R_FAILURE;
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
/* loop through all entries returned */
|
||||
while (entry != NULL) {
|
||||
|
||||
/* reset for this loop */
|
||||
ttl = 0;
|
||||
len = 0;
|
||||
@ -374,7 +362,7 @@ ldap_process_results(LDAP *dbc, LDAPMessage *msg, char ** attrs,
|
||||
attribute = attrs[i];
|
||||
|
||||
/* determine how much space we need for data string */
|
||||
for (j=0; attrs[j] != NULL; j++) {
|
||||
for (j = 0; attrs[j] != NULL; j++) {
|
||||
/* get the list of values for this attribute. */
|
||||
vals = ldap_get_values(dbc, entry, attrs[j]);
|
||||
/* skip empty attributes. */
|
||||
@ -387,7 +375,7 @@ ldap_process_results(LDAP *dbc, LDAPMessage *msg, char ** attrs,
|
||||
len = len + strlen(vals[0]) + 1;
|
||||
/* free vals for next loop */
|
||||
ldap_value_free(vals);
|
||||
} /* end for (j=0; attrs[j] != NULL, j++) loop */
|
||||
} /* end for (j = 0; attrs[j] != NULL, j++) loop */
|
||||
|
||||
/* allocate memory for data string */
|
||||
data = isc_mem_allocate(ns_g_mctx, len + 1);
|
||||
@ -411,7 +399,6 @@ ldap_process_results(LDAP *dbc, LDAPMessage *msg, char ** attrs,
|
||||
|
||||
/* loop through the attributes in the order specified. */
|
||||
while (attribute != NULL) {
|
||||
|
||||
/* get the list of values for this attribute. */
|
||||
vals = ldap_get_values(dbc, entry, attribute);
|
||||
|
||||
@ -486,18 +473,20 @@ ldap_process_results(LDAP *dbc, LDAPMessage *msg, char ** attrs,
|
||||
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
|
||||
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
|
||||
"LDAP driver unable "
|
||||
"to retrieve dns type");
|
||||
"to retrieve DNS type");
|
||||
result = ISC_R_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (strlen(data) < 1) {
|
||||
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
|
||||
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
|
||||
"LDAP driver unable "
|
||||
"to retrieve dns data");
|
||||
"to retrieve DNS data");
|
||||
result = ISC_R_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (allnodes == isc_boolean_true) {
|
||||
if (strcasecmp(host, "~") == 0)
|
||||
result = dns_sdlz_putnamedrr(
|
||||
@ -547,7 +536,6 @@ ldap_process_results(LDAP *dbc, LDAPMessage *msg, char ** attrs,
|
||||
} /* end while (entry != NULL) */
|
||||
|
||||
cleanup:
|
||||
|
||||
/* de-allocate memory */
|
||||
if (vals != NULL)
|
||||
ldap_value_free(vals);
|
||||
@ -558,7 +546,7 @@ ldap_process_results(LDAP *dbc, LDAPMessage *msg, char ** attrs,
|
||||
if (data != NULL)
|
||||
isc_mem_free(ns_g_mctx, data);
|
||||
|
||||
return result;
|
||||
return (result);
|
||||
}
|
||||
|
||||
/*%
|
||||
@ -606,7 +594,7 @@ ldap_get_results(const char *zone, const char *record,
|
||||
|
||||
/* if DBI is null, can't do anything else */
|
||||
if (dbi == NULL)
|
||||
return ISC_R_FAILURE;
|
||||
return (ISC_R_FAILURE);
|
||||
|
||||
/* set fields */
|
||||
if (zone != NULL) {
|
||||
@ -735,7 +723,7 @@ ldap_get_results(const char *zone, const char *record,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
for (i=0; i < 3; i++) {
|
||||
for (i = 0; i < 3; i++) {
|
||||
|
||||
/*
|
||||
* dbi->dbconn may be null if trying to reconnect on a
|
||||
@ -800,7 +788,7 @@ ldap_get_results(const char *zone, const char *record,
|
||||
goto cleanup;
|
||||
break;
|
||||
} /* close switch(ldap_result) */
|
||||
} /* end for (int i=0 i < 3; i++) */
|
||||
} /* end for (int i = 0 i < 3; i++) */
|
||||
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup;
|
||||
@ -846,7 +834,6 @@ ldap_get_results(const char *zone, const char *record,
|
||||
result = ISC_R_UNEXPECTED;
|
||||
}
|
||||
|
||||
|
||||
cleanup:
|
||||
/* it's always good to cleanup after yourself */
|
||||
|
||||
@ -877,13 +864,12 @@ ldap_get_results(const char *zone, const char *record,
|
||||
isc_mem_free(ns_g_mctx, querystring );
|
||||
|
||||
/* return result */
|
||||
return result;
|
||||
return (result);
|
||||
}
|
||||
|
||||
/*
|
||||
* DLZ methods
|
||||
*/
|
||||
|
||||
static isc_result_t
|
||||
dlz_ldap_allowzonexfr(void *driverarg, void *dbdata, const char *name,
|
||||
const char *client)
|
||||
@ -895,11 +881,12 @@ dlz_ldap_allowzonexfr(void *driverarg, void *dbdata, const char *name,
|
||||
/* check to see if we are authoritative for the zone first */
|
||||
result = dlz_ldap_findzone(driverarg, dbdata, name);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
return result;
|
||||
return (result);
|
||||
}
|
||||
|
||||
/* get all the zone data */
|
||||
return ldap_get_results(name, NULL, client, ALLOWXFR, dbdata, NULL);
|
||||
result = ldap_get_results(name, NULL, client, ALLOWXFR, dbdata, NULL);
|
||||
return (result);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
@ -907,7 +894,7 @@ dlz_ldap_allnodes(const char *zone, void *driverarg, void *dbdata,
|
||||
dns_sdlzallnodes_t *allnodes)
|
||||
{
|
||||
UNUSED(driverarg);
|
||||
return ldap_get_results(zone, NULL, NULL, ALLNODES, dbdata, allnodes);
|
||||
return (ldap_get_results(zone, NULL, NULL, ALLNODES, dbdata, allnodes));
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
@ -915,27 +902,29 @@ dlz_ldap_authority(const char *zone, void *driverarg, void *dbdata,
|
||||
dns_sdlzlookup_t *lookup)
|
||||
{
|
||||
UNUSED(driverarg);
|
||||
return ldap_get_results(zone, NULL, NULL, AUTHORITY, dbdata, lookup);
|
||||
return (ldap_get_results(zone, NULL, NULL, AUTHORITY, dbdata, lookup));
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
dlz_ldap_findzone(void *driverarg, void *dbdata, const char *name)
|
||||
{
|
||||
dlz_ldap_findzone(void *driverarg, void *dbdata, const char *name) {
|
||||
UNUSED(driverarg);
|
||||
return ldap_get_results(name, NULL, NULL, FINDZONE, dbdata, NULL);
|
||||
return (ldap_get_results(name, NULL, NULL, FINDZONE, dbdata, NULL));
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
dlz_ldap_lookup(const char *zone, const char *name, void *driverarg,
|
||||
void *dbdata, dns_sdlzlookup_t *lookup)
|
||||
{
|
||||
isc_result_t result;
|
||||
UNUSED(driverarg);
|
||||
|
||||
if (strcmp(name, "*") == 0)
|
||||
return ldap_get_results(zone, "~", NULL,
|
||||
LOOKUP, dbdata, lookup);
|
||||
result = ldap_get_results(zone, "~", NULL, LOOKUP,
|
||||
dbdata, lookup);
|
||||
else
|
||||
return ldap_get_results(zone, name, NULL,
|
||||
LOOKUP, dbdata, lookup);
|
||||
result = ldap_get_results(zone, name, NULL, LOOKUP,
|
||||
dbdata, lookup);
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
@ -943,7 +932,6 @@ static isc_result_t
|
||||
dlz_ldap_create(const char *dlzname, unsigned int argc, char *argv[],
|
||||
void *driverarg, void **dbdata)
|
||||
{
|
||||
|
||||
isc_result_t result;
|
||||
ldap_instance_t *ldap_inst = NULL;
|
||||
dbinstance_t *dbi = NULL;
|
||||
@ -1039,24 +1027,24 @@ dlz_ldap_create(const char *dlzname, unsigned int argc, char *argv[],
|
||||
case 12:
|
||||
result = dlz_ldap_checkURL(argv[11], 0, "allow zone transfer");
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return result;
|
||||
return (result);
|
||||
case 11:
|
||||
result = dlz_ldap_checkURL(argv[10], 3, "all nodes");
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return result;
|
||||
return (result);
|
||||
case 10:
|
||||
if (strlen(argv[9]) > 0) {
|
||||
result = dlz_ldap_checkURL(argv[9], 3, "authority");
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return result;
|
||||
return (result);
|
||||
}
|
||||
case 9:
|
||||
result = dlz_ldap_checkURL(argv[8], 3, "lookup");
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return result;
|
||||
return (result);
|
||||
result = dlz_ldap_checkURL(argv[7], 0, "find zone");
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return result;
|
||||
return (result);
|
||||
break;
|
||||
default:
|
||||
/* not really needed, should shut up compiler. */
|
||||
@ -1248,36 +1236,28 @@ dlz_ldap_create(const char *dlzname, unsigned int argc, char *argv[],
|
||||
return(ISC_R_SUCCESS);
|
||||
|
||||
cleanup:
|
||||
|
||||
dlz_ldap_destroy(NULL, ldap_inst);
|
||||
|
||||
return(ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
void
|
||||
dlz_ldap_destroy(void *driverarg, void *dbdata)
|
||||
{
|
||||
|
||||
dlz_ldap_destroy(void *driverarg, void *dbdata) {
|
||||
UNUSED(driverarg);
|
||||
|
||||
if (dbdata != NULL) {
|
||||
|
||||
#ifdef ISC_PLATFORM_USETHREADS
|
||||
|
||||
/* cleanup the list of DBI's */
|
||||
ldap_destroy_dblist((db_list_t *)
|
||||
((ldap_instance_t *)dbdata)->db);
|
||||
|
||||
#else /* ISC_PLATFORM_USETHREADS */
|
||||
|
||||
/* release connection */
|
||||
if (((ldap_instance_t *)dbdata)->db->dbconn != NULL)
|
||||
ldap_unbind_s((LDAP *)
|
||||
((ldap_instance_t *)dbdata)->db->dbconn);
|
||||
|
||||
/* destroy single DB instance */
|
||||
destroy_sqldbinstance(((ldap_instance_t *)dbdata)->db);
|
||||
|
||||
#endif /* ISC_PLATFORM_USETHREADS */
|
||||
|
||||
if (((ldap_instance_t *)dbdata)->hosts != NULL)
|
||||
@ -1338,8 +1318,7 @@ dlz_ldap_init(void) {
|
||||
result = ISC_R_UNEXPECTED;
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
return (result);
|
||||
}
|
||||
|
||||
/*%
|
||||
@ -1347,7 +1326,6 @@ dlz_ldap_init(void) {
|
||||
*/
|
||||
void
|
||||
dlz_ldap_clear(void) {
|
||||
|
||||
/*
|
||||
* Write debugging message to log
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user