From eabb2821c639fc28f5b31bd20c12abcb7fd888df Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Fri, 26 Feb 2016 15:05:34 -0600 Subject: [PATCH] setkey_principal_3(): use the new HDB/log protocol The addition of kadm5_setkey_principal_3(), and the associated kadm5_s_setkey_principal_3() missed the revamp for two-phase commit. --- lib/kadm5/setkey3_s.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/kadm5/setkey3_s.c b/lib/kadm5/setkey3_s.c index 25f97dae3..4776b814a 100644 --- a/lib/kadm5/setkey3_s.c +++ b/lib/kadm5/setkey3_s.c @@ -56,6 +56,13 @@ kadm5_s_setkey_principal_3(void *server_handle, if (ret) return ret; + ret = kadm5_log_init(context); + if (ret) { + if (!context->keep_open) + context->db->hdb_close(context->context, context->db); + return ret; + } + ret = context->db->hdb_fetch_kvno(context->context, context->db, princ, HDB_F_GET_ANY|HDB_F_ADMIN_DATA, 0, &ent); if (keepold) { @@ -108,17 +115,16 @@ kadm5_s_setkey_principal_3(void *server_handle, if ((ret = hdb_seal_keys(context->context, context->db, &ent.entry)) == 0 && (ret = _kadm5_set_modifier(context, &ent.entry)) == 0 - && (ret = _kadm5_bump_pw_expire(context, &ent.entry)) == 0 - && (ret = context->db->hdb_store(context->context, context->db, - HDB_F_REPLACE, &ent)) == 0) - kadm5_log_modify(context, &ent.entry, - KADM5_ATTRIBUTES | KADM5_PRINCIPAL | - KADM5_MOD_NAME | KADM5_MOD_TIME | - KADM5_KEY_DATA | KADM5_KVNO | - KADM5_PW_EXPIRATION | KADM5_TL_DATA); + && (ret = _kadm5_bump_pw_expire(context, &ent.entry)) == 0) + ret = kadm5_log_modify(context, &ent.entry, + KADM5_ATTRIBUTES | KADM5_PRINCIPAL | + KADM5_MOD_NAME | KADM5_MOD_TIME | + KADM5_KEY_DATA | KADM5_KVNO | + KADM5_PW_EXPIRATION | KADM5_TL_DATA); } hdb_free_entry(context->context, &ent); + (void) kadm5_log_end(context); if (!context->keep_open) context->db->hdb_close(context->context, context->db); return _kadm5_error_code(ret);