static krb5_error_code hkt_destroy(krb5_context context, HDB *db) { hdb_keytab k = (hdb_keytab)db->hdb_db; krb5_error_code ret; ret = hdb_clear_master_key (context, db); free(k->path); free(k); free(db->hdb_name); free(db); return ret; }
/** * Closes the databse and frees all resources. * * @param context The current krb5 context * @param db Heimdal database handle * * @return 0 on success, an error code if not */ static krb5_error_code hdb_sqlite_destroy(krb5_context context, HDB *db) { int ret; ret = hdb_clear_master_key(context, db); hdb_sqlite_close_database(context, db); hdb_sqlite_db *hsdb = (hdb_sqlite_db*)(db->hdb_db); free(hsdb->db_file); free(db->hdb_db); free(db); return ret; }
static krb5_error_code LDAP_destroy(krb5_context context, HDB * db) { krb5_error_code ret; LDAP_close(context, db); ret = hdb_clear_master_key(context, db); if (HDB2BASE(db)) free(HDB2BASE(db)); if (HDB2CREATE(db)) free(HDB2CREATE(db)); if (db->hdb_name) free(db->hdb_name); free(db->hdb_db); free(db); return ret; }