Example #1
0
void
dlz_destroy(void *dbdata) {
	if (dbdata != NULL) {
		ldap_instance_t *db = (ldap_instance_t *)dbdata;
#if PTHREADS
		/* cleanup the list of DBI's */
		if (db->db != NULL)
			ldap_destroy_dblist((db_list_t *)(db->db));
#else /* PTHREADS */
		if (db->db->dbconn != NULL)
			ldap_unbind_s((LDAP *)(db->db->dbconn));

		/* destroy single DB instance */
		destroy_dbinstance(db->db);
#endif /* PTHREADS */

		if (db->hosts != NULL)
			free(db->hosts);
		if (db->user != NULL)
			free(db->user);
		if (db->cred != NULL)
			free(db->cred);
		free(dbdata);
	}
}
Example #2
0
void
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 */
		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)
			isc_mem_free(ns_g_mctx,
				     ((ldap_instance_t *)dbdata)->hosts);

		if (((ldap_instance_t *)dbdata)->user != NULL)
			isc_mem_free(ns_g_mctx,
				     ((ldap_instance_t *)dbdata)->user);

		if (((ldap_instance_t *)dbdata)->cred != NULL)
			isc_mem_free(ns_g_mctx,
				     ((ldap_instance_t *)dbdata)->cred);

		isc_mem_put(ns_g_mctx, dbdata, sizeof(ldap_instance_t));
	}
}