diff --git a/contrib/dlz/drivers/dlz_ldap_driver.c b/contrib/dlz/drivers/dlz_ldap_driver.c index 6d08285447..0318a400e1 100644 --- a/contrib/dlz/drivers/dlz_ldap_driver.c +++ b/contrib/dlz/drivers/dlz_ldap_driver.c @@ -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 */