summaryrefslogtreecommitdiff
path: root/lib/dbwrap/dbwrap.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2012-06-22 15:07:44 +0930
committerRusty Russell <rusty@rustcorp.com.au>2012-06-22 07:35:17 +0200
commit41f799d877961d095401a628307e0c690dfbc124 (patch)
tree5687f03d0009a3f379375a3d52087afbb14591e2 /lib/dbwrap/dbwrap.c
parentf6eb187fdab6b8088bb065e418fe604c4eba7751 (diff)
downloadsamba-41f799d877961d095401a628307e0c690dfbc124.tar.gz
samba-41f799d877961d095401a628307e0c690dfbc124.tar.bz2
samba-41f799d877961d095401a628307e0c690dfbc124.zip
dbwrap: dbwrap_transaction_start_nonblock().
Implemented for ntdb and tdb; falls back to the blocking variant for others. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'lib/dbwrap/dbwrap.c')
-rw-r--r--lib/dbwrap/dbwrap.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/dbwrap/dbwrap.c b/lib/dbwrap/dbwrap.c
index 835bd599ef..afb069221e 100644
--- a/lib/dbwrap/dbwrap.c
+++ b/lib/dbwrap/dbwrap.c
@@ -425,6 +425,16 @@ int dbwrap_transaction_start(struct db_context *db)
return db->transaction_start(db);
}
+NTSTATUS dbwrap_transaction_start_nonblock(struct db_context *db)
+{
+ if (db->transaction_start_nonblock) {
+ return db->transaction_start_nonblock(db);
+ } else {
+ return dbwrap_transaction_start(db) == 0 ? NT_STATUS_OK
+ : NT_STATUS_UNSUCCESSFUL;
+ }
+}
+
int dbwrap_transaction_commit(struct db_context *db)
{
return db->transaction_commit(db);