return OSA_ADB_OK;
}
-krb5_error_code
-osa_adb_rename_db(char *filefrom, char *lockfrom, char *fileto, char *lockto,
- int magic)
-{
- osa_adb_db_t fromdb, todb;
- krb5_error_code ret;
-
- /* make sure todb exists */
- if ((ret = osa_adb_create_db(fileto, lockto, magic)) &&
- ret != EEXIST)
- return ret;
-
- if ((ret = osa_adb_init_db(&fromdb, filefrom, lockfrom, magic)))
- return ret;
- if ((ret = osa_adb_init_db(&todb, fileto, lockto, magic))) {
- (void) osa_adb_fini_db(fromdb, magic);
- return ret;
- }
- if ((ret = osa_adb_get_lock(fromdb, KRB5_DB_LOCKMODE_PERMANENT))) {
- (void) osa_adb_fini_db(fromdb, magic);
- (void) osa_adb_fini_db(todb, magic);
- return ret;
- }
- if ((ret = osa_adb_get_lock(todb, KRB5_DB_LOCKMODE_PERMANENT))) {
- (void) osa_adb_fini_db(fromdb, magic);
- (void) osa_adb_fini_db(todb, magic);
- return ret;
- }
- if ((rename(filefrom, fileto) < 0)) {
- (void) osa_adb_fini_db(fromdb, magic);
- (void) osa_adb_fini_db(todb, magic);
- return errno;
- }
- /*
- * Do not release the lock on fromdb because it is being renamed
- * out of existence; no one can ever use it again.
- */
- if ((ret = osa_adb_release_lock(todb))) {
- (void) osa_adb_fini_db(fromdb, magic);
- (void) osa_adb_fini_db(todb, magic);
- return ret;
- }
-
- (void) osa_adb_fini_db(fromdb, magic);
- (void) osa_adb_fini_db(todb, magic);
- return 0;
-}
-
krb5_error_code
osa_adb_init_db(osa_adb_db_t *dbp, char *filename, char *lockfilename,
int magic)
krb5_error_code osa_adb_create_db(char *filename, char *lockfile, int magic);
krb5_error_code osa_adb_destroy_db(char *filename, char *lockfile, int magic);
-krb5_error_code osa_adb_rename_db(char *filefrom, char *lockfrom,
- char *fileto, char *lockto, int magic);
krb5_error_code osa_adb_init_db(osa_adb_db_t *dbp, char *filename,
char *lockfile, int magic);
krb5_error_code osa_adb_fini_db(osa_adb_db_t db, int magic);
krb5_error_code osa_adb_release_lock(osa_adb_db_t db);
krb5_error_code osa_adb_open_and_lock(osa_adb_princ_t db, int locktype);
krb5_error_code osa_adb_close_and_unlock(osa_adb_princ_t db);
-krb5_error_code osa_adb_close_policy(osa_adb_policy_t db);
krb5_error_code osa_adb_create_policy(osa_adb_policy_t db,
osa_policy_ent_t entry);
krb5_error_code osa_adb_destroy_policy(osa_adb_policy_t db,