From: Gregor Beck Date: Thu, 19 Apr 2012 11:32:26 +0000 (+0200) Subject: s3:eventlogadm make a transaction for addsource X-Git-Tag: samba-4.0.0alpha20~103 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4eb4f75371aa16bf19474090b1dbef042e9a0446;p=thirdparty%2Fsamba.git s3:eventlogadm make a transaction for addsource Signed-off-by: Andreas Schneider --- diff --git a/source3/utils/eventlogadm.c b/source3/utils/eventlogadm.c index 745e0ce3837..8d8fa4a4d74 100644 --- a/source3/utils/eventlogadm.c +++ b/source3/utils/eventlogadm.c @@ -28,6 +28,7 @@ #include "registry/reg_api.h" #include "registry/reg_init_basic.h" #include "registry/reg_util_token.h" +#include "registry/reg_backend_db.h" #include "../libcli/registry/util_reg.h" extern int optind; @@ -265,9 +266,21 @@ static int DoAddSourceCommand( int argc, char **argv, bool debugflag, char *exen printf("Can't open the registry: %s.\n", win_errstr(werr)); return -1; } + werr = regdb_transaction_start(); + if (!W_ERROR_IS_OK(werr)) { + printf("Can't start transaction on registry: %s.\n", win_errstr(werr)); + return -1; + } - if ( !eventlog_add_source( argv[0], argv[1], argv[2] ) ) + if ( !eventlog_add_source( argv[0], argv[1], argv[2] ) ) { + regdb_transaction_cancel(); return -2; + } + werr = regdb_transaction_commit(); + if (!W_ERROR_IS_OK(werr)) { + printf("Failed to commit transaction on registry: %s.\n", win_errstr(werr)); + return -1; + } return 0; }