Revert "ldb: Permit desactivation of autocomit for every ldb_xxx_ctrl function"
authorAndrew Bartlett <abartlet@samba.org>
Wed, 4 Apr 2012 02:51:00 +0000 (12:51 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 10 Apr 2012 06:40:05 +0000 (16:40 +1000)
This reverts commit 40a4aea8918c2637703af03383f440d068820e48.

Autocommit is important, as otherwise an ldb module could error out
during an operation, and leave an corrupt database.

Andrew Bartlett

lib/ldb/tools/cmdline.c
lib/ldb/tools/cmdline.h
lib/ldb/tools/ldbadd.c
lib/ldb/tools/ldbdel.c
lib/ldb/tools/ldbedit.c
lib/ldb/tools/ldbmodify.c
lib/ldb/tools/ldbutil.c
lib/ldb/tools/ldbutil.h

index ff3c1cd41fe72a80004db59840b7b5e39a77414a..a06445fc0f4b1f7d65e72fbb8871d7676d6b4272 100644 (file)
@@ -59,7 +59,6 @@ static struct poptOption builtin_popt_options[] = {
        { "relax", 0, POPT_ARG_NONE, NULL, CMDLINE_RELAX, "pass relax control", NULL },
        { "cross-ncs", 0, POPT_ARG_NONE, NULL, 'N', "search across NC boundaries", NULL },
        { "extended-dn", 0, POPT_ARG_NONE, NULL, 'E', "show extended DNs", NULL },
-       { "noautocommit", 0, POPT_ARG_NONE, &options.noautocommit, 1, "do not commit after each ldif message", NULL },
        { NULL }
 };
 
index 672c9178f3fe9c441530be407a35806a15ff760a..416bf51d228a978b2dc72c8233c786a694b22e30 100644 (file)
@@ -44,7 +44,6 @@ struct ldb_cmdline {
        const char **controls;
        int show_binary;
        int tracing;
-       bool noautocommit;
 };
 
 struct ldb_cmdline *ldb_cmdline_process(struct ldb_context *ldb, int argc,
index a073f519ed5732350e3862fe00bf4ec2b2bcadce..47fd261841642cff3841b51d75349593ddff4144 100644 (file)
@@ -79,7 +79,7 @@ static int process_file(struct ldb_context *ldb, FILE *f, unsigned int *count)
                        continue;
                }
 
-               ret = ldb_add_ctrl(ldb, ldif->msg,req_ctrls, true);
+               ret = ldb_add_ctrl(ldb, ldif->msg,req_ctrls);
                if (ret != LDB_SUCCESS) {
                        fprintf(stderr, "ERR: %s : \"%s\" on DN %s\n",
                                ldb_strerror(ret), ldb_errstring(ldb),
index ae042dae5f0ca00c12164825f03f8d79c1472c2c..8036d09a70da6d40bb6b69f520235e0a723767ae 100644 (file)
@@ -41,7 +41,7 @@ static int dn_cmp(struct ldb_message **msg1, struct ldb_message **msg2)
        return ldb_dn_compare((*msg1)->dn, (*msg2)->dn);
 }
 
-static int ldb_delete_recursive(struct ldb_context *ldb, struct ldb_dn *dn,struct ldb_control **req_ctrls, bool doautocommit)
+static int ldb_delete_recursive(struct ldb_context *ldb, struct ldb_dn *dn,struct ldb_control **req_ctrls)
 {
        int ret;
        unsigned int i, total=0;
@@ -55,7 +55,7 @@ static int ldb_delete_recursive(struct ldb_context *ldb, struct ldb_dn *dn,struc
        TYPESAFE_QSORT(res->msgs, res->count, dn_cmp);
 
        for (i = 0; i < res->count; i++) {
-               if (ldb_delete_ctrl(ldb, res->msgs[i]->dn,req_ctrls, doautocommit) == LDB_SUCCESS) {
+               if (ldb_delete_ctrl(ldb, res->msgs[i]->dn,req_ctrls) == LDB_SUCCESS) {
                        total++;
                } else {
                        printf("Failed to delete '%s' - %s\n",
@@ -114,9 +114,9 @@ int main(int argc, const char **argv)
                        return LDB_ERR_OPERATIONS_ERROR;
                }
                if (options->recursive) {
-                       ret = ldb_delete_recursive(ldb, dn,req_ctrls, !options->noautocommit);
+                       ret = ldb_delete_recursive(ldb, dn,req_ctrls);
                } else {
-                       ret = ldb_delete_ctrl(ldb, dn,req_ctrls, !options->noautocommit);
+                       ret = ldb_delete_ctrl(ldb, dn,req_ctrls);
                        if (ret == LDB_SUCCESS) {
                                printf("Deleted 1 record\n");
                        }
index 0a88efa7669f5d3c3870009420b0db29fa1f43d0..cf4ab3f8ec1cf459bcad268c8536a55cb2ef42c3 100644 (file)
@@ -81,7 +81,7 @@ static int modify_record(struct ldb_context *ldb,
                ldif_write_msg(ldb, stdout, LDB_CHANGETYPE_MODIFY, mod);
        }
 
-       if (ldb_modify_ctrl(ldb, mod, req_ctrls, true) != LDB_SUCCESS) {
+       if (ldb_modify_ctrl(ldb, mod, req_ctrls) != LDB_SUCCESS) {
                fprintf(stderr, "failed to modify %s - %s\n",
                        ldb_dn_get_linearized(msg1->dn), ldb_errstring(ldb));
                ret = -1;
@@ -139,7 +139,7 @@ static int merge_edits(struct ldb_context *ldb,
                        if (options->verbose > 0) {
                                ldif_write_msg(ldb, stdout, LDB_CHANGETYPE_ADD, msgs2[i]);
                        }
-                       if (ldb_add_ctrl(ldb, msgs2[i], req_ctrls, true) != LDB_SUCCESS) {
+                       if (ldb_add_ctrl(ldb, msgs2[i], req_ctrls) != LDB_SUCCESS) {
                                fprintf(stderr, "failed to add %s - %s\n",
                                        ldb_dn_get_linearized(msgs2[i]->dn),
                                        ldb_errstring(ldb));
@@ -165,7 +165,7 @@ static int merge_edits(struct ldb_context *ldb,
                        if (options->verbose > 0) {
                                ldif_write_msg(ldb, stdout, LDB_CHANGETYPE_DELETE, msgs1[i]);
                        }
-                       if (ldb_delete_ctrl(ldb, msgs1[i]->dn, req_ctrls, true) != LDB_SUCCESS) {
+                       if (ldb_delete_ctrl(ldb, msgs1[i]->dn, req_ctrls) != LDB_SUCCESS) {
                                fprintf(stderr, "failed to delete %s - %s\n",
                                        ldb_dn_get_linearized(msgs1[i]->dn),
                                        ldb_errstring(ldb));
index 0940303eab1bf71c1aa3d63fa85abcdd28ce4a08..2ca7b62b2c367c563576c2772a679b32fd5978b7 100644 (file)
@@ -49,7 +49,7 @@ static void usage(struct ldb_context *ldb)
 /*
   process modifies for one file
 */
-static int process_file(struct ldb_context *ldb, FILE *f, unsigned int *count, bool doautocomit)
+static int process_file(struct ldb_context *ldb, FILE *f, unsigned int *count)
 {
        struct ldb_ldif *ldif;
        int fun_ret = LDB_SUCCESS, ret;
@@ -69,13 +69,13 @@ static int process_file(struct ldb_context *ldb, FILE *f, unsigned int *count, b
                switch (ldif->changetype) {
                case LDB_CHANGETYPE_NONE:
                case LDB_CHANGETYPE_ADD:
-                       ret = ldb_add_ctrl(ldb, ldif->msg, req_ctrls, doautocomit);
+                       ret = ldb_add_ctrl(ldb, ldif->msg,req_ctrls);
                        break;
                case LDB_CHANGETYPE_DELETE:
-                       ret = ldb_delete_ctrl(ldb, ldif->msg->dn, req_ctrls, doautocomit);
+                       ret = ldb_delete_ctrl(ldb, ldif->msg->dn,req_ctrls);
                        break;
                case LDB_CHANGETYPE_MODIFY:
-                       ret = ldb_modify_ctrl(ldb, ldif->msg, req_ctrls, doautocomit);
+                       ret = ldb_modify_ctrl(ldb, ldif->msg,req_ctrls);
                        break;
                case LDB_CHANGETYPE_MODRDN:
                        ret = ldb_ldif_parse_modrdn(ldb, ldif, ldif, &olddn,
@@ -133,7 +133,7 @@ int main(int argc, const char **argv)
        options = ldb_cmdline_process(ldb, argc, argv, usage);
 
        if (options->argc == 0) {
-               ret = process_file(ldb, stdin, &count, !options->noautocommit);
+               ret = process_file(ldb, stdin, &count);
        } else {
                for (i=0;i<options->argc;i++) {
                        const char *fname = options->argv[i];
@@ -143,7 +143,7 @@ int main(int argc, const char **argv)
                                perror(fname);
                                return LDB_ERR_OPERATIONS_ERROR;
                        }
-                       ret = process_file(ldb, f, &count, !options->noautocommit);
+                       ret = process_file(ldb, f, &count);
                        fclose(f);
                }
        }
index 882bc67be530a1cff0b435afd536845474a59df2..26f252704c1de7e9b40df591fe4c9774bc53d43e 100644 (file)
@@ -67,7 +67,7 @@ static int ldb_do_autotransaction(struct ldb_context *ldb,
 */
 int ldb_add_ctrl(struct ldb_context *ldb,
                const struct ldb_message *message,
-               struct ldb_control **controls, bool do_transaction)
+               struct ldb_control **controls)
 {
        struct ldb_request *req;
        int ret;
@@ -87,8 +87,7 @@ int ldb_add_ctrl(struct ldb_context *ldb,
        if (ret != LDB_SUCCESS) return ret;
 
        /* do request and autostart a transaction */
-       if (do_transaction)
-               ret = ldb_do_autotransaction(ldb, req);
+       ret = ldb_do_autotransaction(ldb, req);
 
        talloc_free(req);
        return ret;
@@ -98,7 +97,7 @@ int ldb_add_ctrl(struct ldb_context *ldb,
   same as ldb_delete but accept control
 */
 int ldb_delete_ctrl(struct ldb_context *ldb, struct ldb_dn *dn,
-               struct ldb_control **controls, bool do_transaction)
+               struct ldb_control **controls)
 {
        struct ldb_request *req;
        int ret;
@@ -113,8 +112,7 @@ int ldb_delete_ctrl(struct ldb_context *ldb, struct ldb_dn *dn,
        if (ret != LDB_SUCCESS) return ret;
 
        /* do request and autostart a transaction */
-       if (do_transaction)
-               ret = ldb_do_autotransaction(ldb, req);
+       ret = ldb_do_autotransaction(ldb, req);
 
        talloc_free(req);
        return ret;
@@ -126,7 +124,7 @@ int ldb_delete_ctrl(struct ldb_context *ldb, struct ldb_dn *dn,
 */
 int ldb_modify_ctrl(struct ldb_context *ldb,
                     const struct ldb_message *message,
-                    struct ldb_control **controls, bool do_transaction)
+                    struct ldb_control **controls)
 {
         struct ldb_request *req;
         int ret;
@@ -146,8 +144,7 @@ int ldb_modify_ctrl(struct ldb_context *ldb,
         if (ret != LDB_SUCCESS) return ret;
 
         /* do request and autostart a transaction */
-        if (do_transaction)
-               ret = ldb_do_autotransaction(ldb, req);
+        ret = ldb_do_autotransaction(ldb, req);
 
         talloc_free(req);
         return ret;
index 28522b20ba199566ee95653f2e66d6f2503ccb79..f8d3f3a2106deae4bb9242dcc33e9a34b64d58b2 100644 (file)
 
 int ldb_add_ctrl(struct ldb_context *ldb,
                const struct ldb_message *message,
-               struct ldb_control **controls, bool do_transaction);
+               struct ldb_control **controls);
 int ldb_delete_ctrl(struct ldb_context *ldb, struct ldb_dn *dn,
-               struct ldb_control **controls, bool do_transaction);
+               struct ldb_control **controls);
 int ldb_modify_ctrl(struct ldb_context *ldb,
                 const struct ldb_message *message,
-                struct ldb_control **controls, bool do_transaction);
+                struct ldb_control **controls);
 int ldb_search_ctrl(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
                    struct ldb_result **result, struct ldb_dn *base,
                    enum ldb_scope scope, const char * const *attrs,