diff options
author | Tom Yu <tlyu@mit.edu> | 2002-10-08 20:20:29 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2002-10-08 20:20:29 +0000 |
commit | 794f0d854711dbee20ca8cfb3ec2ae729c41910c (patch) | |
tree | 579a3b3f9f9c9851ec06cd8a188c7707b5ce2db4 /src/lib/kadm5/srv/server_init.c | |
parent | 2d59b5f412e0eacf4c89008b14df8251a92cae09 (diff) | |
download | krb5-794f0d854711dbee20ca8cfb3ec2ae729c41910c.tar.gz krb5-794f0d854711dbee20ca8cfb3ec2ae729c41910c.tar.xz krb5-794f0d854711dbee20ca8cfb3ec2ae729c41910c.zip |
libkadm5 should allow persistent locks
libkadm5 should have a way to persistently lock the databases to avoid
wasting time on closing and reopening. These patches implement
persistent exclusive locks for local access only.
ticket: new
target_version: 1.3
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14914 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/kadm5/srv/server_init.c')
-rw-r--r-- | src/lib/kadm5/srv/server_init.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/lib/kadm5/srv/server_init.c b/src/lib/kadm5/srv/server_init.c index 31dd71ad8..f2cbc991f 100644 --- a/src/lib/kadm5/srv/server_init.c +++ b/src/lib/kadm5/srv/server_init.c @@ -306,6 +306,34 @@ kadm5_ret_t kadm5_destroy(void *server_handle) return KADM5_OK; } +kadm5_ret_t kadm5_lock(void *server_handle) +{ + kadm5_server_handle_t handle = server_handle; + kadm5_ret_t ret; + + CHECK_HANDLE(server_handle); + ret = osa_adb_open_and_lock(handle->policy_db, OSA_ADB_EXCLUSIVE); + if (ret) + return ret; + ret = krb5_db_lock(handle->context, KRB5_LOCKMODE_EXCLUSIVE); + if (ret) + return ret; +} + +kadm5_ret_t kadm5_unlock(void *server_handle) +{ + kadm5_server_handle_t handle = server_handle; + kadm5_ret_t ret; + + CHECK_HANDLE(server_handle); + ret = osa_adb_close_and_unlock(handle->policy_db); + if (ret) + return ret; + ret = krb5_db_unlock(handle->context); + if (ret) + return ret; +} + kadm5_ret_t kadm5_flush(void *server_handle) { kadm5_server_handle_t handle = server_handle; |