]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Support write locks in DB2 iteration
authorTom Yu <tlyu@mit.edu>
Sat, 2 Aug 2014 18:20:33 +0000 (14:20 -0400)
committerTom Yu <tlyu@mit.edu>
Sat, 2 Aug 2014 18:20:33 +0000 (14:20 -0400)
Add support to krb5_db_iterate() for requesting write locks in the DB2
back end.

ticket: 7977

src/plugins/kdb/db2/kdb_db2.c

index f4e945884d30ae06539c3173f65c09b3c812e794..8d419ea4c8f7bb1db1bcd7dfa1c02f0fd3d72286 100644 (file)
@@ -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;