From: Mitchell Berger Date: Thu, 21 Jun 2001 11:05:54 +0000 (+0000) Subject: * server_kdb.c (kdb_put_entry): Modified to perform the generation X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb96fc44ca5faf0e99c32a77bc720f24b77d9804;p=thirdparty%2Fkrb5.git * server_kdb.c (kdb_put_entry): Modified to perform the generation number update conditional upon success of kdb_put_entry_internal. (kdb_put_entry_internal): No longer takes incgen argument or updates generation number. (kdb_update_generation_number): Changed from using krb5_dbe_update_generation_number_general to using krb5_dbe_increment_generation_number_general. Also uses new calling sequence for kdb_put_entry_internal. git-svn-id: svn://anonsvn.mit.edu/krb5/branches/incremental-propagation-branch@13432 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/kadm5/srv/ChangeLog b/src/lib/kadm5/srv/ChangeLog index 300dad945a..dd5d8c7e74 100644 --- a/src/lib/kadm5/srv/ChangeLog +++ b/src/lib/kadm5/srv/ChangeLog @@ -1,3 +1,14 @@ +2001-06-21 Mitchell Berger + + * server_kdb.c (kdb_put_entry): Modified to perform the generation + number update conditional upon success of kdb_put_entry_internal. + (kdb_put_entry_internal): No longer takes incgen argument or updates + generation number. + (kdb_update_generation_number): Changed from using + krb5_dbe_update_generation_number_general to using + krb5_dbe_increment_generation_number_general. Also uses new calling + sequence for kdb_put_entry_internal. + 2001-06-20 Mitchell Berger * Makefile.in: Include svr_generation.[co] in the build. diff --git a/src/lib/kadm5/srv/server_kdb.c b/src/lib/kadm5/srv/server_kdb.c index 980bcff157..44ff75d0e0 100644 --- a/src/lib/kadm5/srv/server_kdb.c +++ b/src/lib/kadm5/srv/server_kdb.c @@ -324,12 +324,23 @@ krb5_error_code kdb_put_entry(kadm5_server_handle_t handle, krb5_db_entry *kdb, osa_princ_ent_rec *adb) { - return kdb_put_entry_internal(handle, kdb, adb, 1, 1); + krb5_error_code ret; + + ret = kdb_put_entry_internal(handle, kdb, adb, 1); + if (ret) + return(ret); + + /* The update succeeded, so we should update the generation number. */ + ret = kdb_update_generation_number(handle); + if (ret) + return(ret); + + return(0); } krb5_error_code kdb_put_entry_internal(kadm5_server_handle_t handle, - krb5_db_entry *kdb, osa_princ_ent_rec *adb, int incgen, + krb5_db_entry *kdb, osa_princ_ent_rec *adb, int updatemod) { krb5_error_code ret; @@ -371,13 +382,6 @@ kdb_put_entry_internal(kadm5_server_handle_t handle, if (ret) return(ret); - if (incgen) { - /* The update succeeded, so we should change the generation number */ - ret = kdb_update_generation_number(handle); - if (ret) - return(ret); - } - return(0); } @@ -442,15 +446,17 @@ kdb_update_generation_number(kadm5_server_handle_t handle) if (ret) return(ret); - ret = krb5_dbe_update_generation_number_general(handle->context, - &master_kdb, NULL); + ret = krb5_dbe_increment_generation_number_general(handle->context, + &master_kdb); if (ret) return(ret); /* Updating the generation number, while a change to the database, is not one that should result in updating the generation number - again to avoid an infinite loop. */ - ret = kdb_put_entry_internal(handle, &master_kdb, &master_adb, 0, 0); + again to avoid an infinite loop. Also, though it is changing + data associated with the master principal, we don't want to update + the master principal's modprinc data because that would be misleading. */ + ret = kdb_put_entry_internal(handle, &master_kdb, &master_adb, 0); if (ret) return(ret);