The Samba-Bugzilla – Attachment 5582 Details for
Bug 7313
Net conf addshare is not atomic
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Fix from master.
bug-7313.patch (text/plain), 2.60 KB, created by
Michael Adam
on 2010-03-31 10:26:23 UTC
(
hide
)
Description:
Fix from master.
Filename:
MIME Type:
Creator:
Michael Adam
Created:
2010-03-31 10:26:23 UTC
Size:
2.60 KB
patch
obsolete
>From 988b08c6582843501ee1b43fd0d9f6ab240a6ee9 Mon Sep 17 00:00:00 2001 >From: Michael Adam <obnox@samba.org> >Date: Fri, 29 Jan 2010 15:04:25 +0100 >Subject: [PATCH] s3:make "net conf addshare" atomic by wrapping all writes in one transaction > >Michael >(cherry picked from commit 09f3ed102472304d6b4446a6fab9cf6f05c9176a) >--- > source3/utils/net_conf.c | 42 ++++++++++++++++++++++++++++++++++++------ > 1 files changed, 36 insertions(+), 6 deletions(-) > >diff --git a/source3/utils/net_conf.c b/source3/utils/net_conf.c >index e6e8e52..67e3c85 100644 >--- a/source3/utils/net_conf.c >+++ b/source3/utils/net_conf.c >@@ -691,6 +691,17 @@ static int net_conf_addshare(struct net_context *c, > } > > /* >+ * start a transaction >+ */ >+ >+ werr = smbconf_transaction_start(conf_ctx); >+ if (!W_ERROR_IS_OK(werr)) { >+ d_printf("error starting transaction: %s\n", >+ win_errstr(werr)); >+ goto done; >+ } >+ >+ /* > * create the share > */ > >@@ -698,7 +709,7 @@ static int net_conf_addshare(struct net_context *c, > if (!W_ERROR_IS_OK(werr)) { > d_fprintf(stderr, _("Error creating share %s: %s\n"), > sharename, win_errstr(werr)); >- goto done; >+ goto cancel; > } > > /* >@@ -709,7 +720,7 @@ static int net_conf_addshare(struct net_context *c, > if (!W_ERROR_IS_OK(werr)) { > d_fprintf(stderr, _("Error setting parameter %s: %s\n"), > "path", win_errstr(werr)); >- goto done; >+ goto cancel; > } > > if (comment != NULL) { >@@ -718,7 +729,7 @@ static int net_conf_addshare(struct net_context *c, > if (!W_ERROR_IS_OK(werr)) { > d_fprintf(stderr, _("Error setting parameter %s: %s\n"), > "comment", win_errstr(werr)); >- goto done; >+ goto cancel; > } > } > >@@ -726,7 +737,7 @@ static int net_conf_addshare(struct net_context *c, > if (!W_ERROR_IS_OK(werr)) { > d_fprintf(stderr, _("Error setting parameter %s: %s\n"), > "'guest ok'", win_errstr(werr)); >- goto done; >+ goto cancel; > } > > werr = smbconf_set_parameter(conf_ctx, sharename, "writeable", >@@ -734,10 +745,29 @@ static int net_conf_addshare(struct net_context *c, > if (!W_ERROR_IS_OK(werr)) { > d_fprintf(stderr, _("Error setting parameter %s: %s\n"), > "writeable", win_errstr(werr)); >- goto done; >+ goto cancel; > } > >- ret = 0; >+ /* >+ * commit the whole thing >+ */ >+ >+ werr = smbconf_transaction_commit(conf_ctx); >+ if (!W_ERROR_IS_OK(werr)) { >+ d_printf("error committing transaction: %s\n", >+ win_errstr(werr)); >+ } else { >+ ret = 0; >+ } >+ >+ goto done; >+ >+cancel: >+ werr = smbconf_transaction_cancel(conf_ctx); >+ if (!W_ERROR_IS_OK(werr)) { >+ d_printf("error cancelling transaction: %s\n", >+ win_errstr(werr)); >+ } > > done: > TALLOC_FREE(mem_ctx); >-- >1.6.3.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
vl
:
review+
Actions:
View
Attachments on
bug 7313
: 5582