aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2014-08-02 14:20:33 -0400
committerTom Yu <tlyu@mit.edu>2014-08-02 14:20:33 -0400
commit0cc00db2987f6b103b7e8bee72b7ddfbad2faea8 (patch)
tree843fd2feb5be81b6014483e4bc4fd87e8470a670 /src/plugins
parentab009b8568d9b64b7e992ecdb98114e895b4a7ff (diff)
downloadkrb5-0cc00db2987f6b103b7e8bee72b7ddfbad2faea8.zip
krb5-0cc00db2987f6b103b7e8bee72b7ddfbad2faea8.tar.gz
krb5-0cc00db2987f6b103b7e8bee72b7ddfbad2faea8.tar.bz2
Support write locks in DB2 iteration
Add support to krb5_db_iterate() for requesting write locks in the DB2 back end. ticket: 7977
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/kdb/db2/kdb_db2.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/plugins/kdb/db2/kdb_db2.c b/src/plugins/kdb/db2/kdb_db2.c
index f4e9458..8d419ea 100644
--- a/src/plugins/kdb/db2/kdb_db2.c
+++ b/src/plugins/kdb/db2/kdb_db2.c
@@ -935,8 +935,14 @@ ctx_iterate(krb5_context context, krb5_db2_context *dbc,
krb5_db_entry *entry;
krb5_error_code retval;
int dbret;
+ int lockmode;
- retval = ctx_lock(context, dbc, KRB5_LOCKMODE_SHARED);
+ if (iterflags & KRB5_DB_ITER_WRITE)
+ lockmode = KRB5_LOCKMODE_EXCLUSIVE;
+ else
+ lockmode = KRB5_LOCKMODE_SHARED;
+
+ retval = ctx_lock(context, dbc, lockmode);
if (retval)
return retval;