The branch, master has been updated
       via  6d97360... s3:registry: use regdb_store_regdb_version() in 
regdb_init().
       via  2f44dcc... s3:registry: use regdb_store_regdb_version() in 
regdb_upgrade_v1_to_v2()
       via  5641ee0... s3:registry: add a function regdb_store_regdb_version()
       via  a9bec6b... s3:registry: rename regdb_upgrade_to_version_2() -> 
regdb_upgrade_v1_to_v2()
      from  36b95fe... s3:net [rpc] registry: be as user-friendly as possible 
wrt to the normalization change

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 6d973607c3bfec6d82347727b1bf800348c74202
Author: Michael Adam <[email protected]>
Date:   Fri Jun 25 18:13:06 2010 +0200

    s3:registry: use regdb_store_regdb_version() in regdb_init().

commit 2f44dcc96b5a02379995c8ba6270ff8d89e56953
Author: Michael Adam <[email protected]>
Date:   Fri Jun 25 18:12:28 2010 +0200

    s3:registry: use regdb_store_regdb_version() in regdb_upgrade_v1_to_v2()

commit 5641ee02fdbd768b90ca8de43ce2f14b007e4245
Author: Michael Adam <[email protected]>
Date:   Fri Jun 25 18:11:35 2010 +0200

    s3:registry: add a function regdb_store_regdb_version()

commit a9bec6b779edd2feead5fae5cb25cf1f862eaaf2
Author: Michael Adam <[email protected]>
Date:   Fri Jun 25 18:04:52 2010 +0200

    s3:registry: rename regdb_upgrade_to_version_2() -> regdb_upgrade_v1_to_v2()

-----------------------------------------------------------------------

Summary of changes:
 source3/registry/reg_backend_db.c |   61 ++++++++++++++++++++-----------------
 1 files changed, 33 insertions(+), 28 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/registry/reg_backend_db.c 
b/source3/registry/reg_backend_db.c
index 9a0e632..a31f7fb 100644
--- a/source3/registry/reg_backend_db.c
+++ b/source3/registry/reg_backend_db.c
@@ -439,10 +439,32 @@ static int regdb_normalize_keynames_fn(struct db_record 
*rec,
        return 0;
 }
 
-static WERROR regdb_upgrade_to_version_2(void)
+static WERROR regdb_store_regdb_version(uint32_t version)
+{
+       NTSTATUS status;
+       const char *version_keyname = "INFO/version";
+
+       if (!regdb) {
+               return WERR_CAN_NOT_COMPLETE;
+       }
+
+       status = dbwrap_trans_store_int32(regdb, version_keyname, version);
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(1, ("regdb_init: error storing %s = %d: %s\n",
+                         version_keyname, version, nt_errstr(status)));
+               return ntstatus_to_werror(status);
+       } else {
+               DEBUG(10, ("regdb_init: stored %s = %d\n",
+                         version_keyname, version));
+               return WERR_OK;
+       }
+}
+
+static WERROR regdb_upgrade_v1_to_v2(void)
 {
        TALLOC_CTX *mem_ctx;
        int rc;
+       WERROR werr;
 
        mem_ctx = talloc_stackframe();
        if (mem_ctx == NULL) {
@@ -452,7 +474,13 @@ static WERROR regdb_upgrade_to_version_2(void)
        rc = regdb->traverse(regdb, regdb_normalize_keynames_fn, mem_ctx);
 
        talloc_destroy(mem_ctx);
-       return (rc == -1 ? WERR_REG_IO_FAILURE : WERR_OK);
+
+       if (rc == -1) {
+               return WERR_REG_IO_FAILURE;
+       }
+
+       werr = regdb_store_regdb_version(REGVER_V2);
+       return werr;
 }
 
 /***********************************************************************
@@ -493,23 +521,12 @@ WERROR regdb_init(void)
 
        vers_id = dbwrap_fetch_int32(regdb, vstring);
        if (vers_id == -1) {
-               NTSTATUS status;
-
                DEBUG(10, ("regdb_init: registry version uninitialized "
                           "(got %d), initializing to version %d\n",
                           vers_id, expected_version));
 
-               status = dbwrap_trans_store_int32(regdb, vstring, REGVER_V2);
-               if (!NT_STATUS_IS_OK(status)) {
-                       DEBUG(1, ("regdb_init: error storing %s = %d: %s\n",
-                                 vstring, expected_version, 
nt_errstr(status)));
-                       return ntstatus_to_werror(status);
-               } else {
-                       DEBUG(10, ("regdb_init: stored %s = %d\n",
-                                 vstring, expected_version));
-               }
-
-               return WERR_OK;
+               werr = regdb_store_regdb_version(expected_version);
+               return werr;
        }
 
        if (vers_id > expected_version || vers_id == 0) {
@@ -520,8 +537,6 @@ WERROR regdb_init(void)
        }
 
        if (vers_id == REGVER_V1) {
-               NTSTATUS status;
-
                DEBUG(10, ("regdb_init: got registry db version %d, upgrading "
                           "to version %d\n", REGVER_V1, REGVER_V2));
 
@@ -529,22 +544,12 @@ WERROR regdb_init(void)
                        return WERR_REG_IO_FAILURE;
                }
 
-               werr = regdb_upgrade_to_version_2();
+               werr = regdb_upgrade_v1_to_v2();
                if (!W_ERROR_IS_OK(werr)) {
                        regdb->transaction_cancel(regdb);
                        return werr;
                }
 
-               status = dbwrap_trans_store_int32(regdb, vstring, REGVER_V2);
-               if (!NT_STATUS_IS_OK(status)) {
-                       DEBUG(1, ("regdb_init: error storing %s = %d: %s\n",
-                                 vstring, REGVER_V2, nt_errstr(status)));
-                       regdb->transaction_cancel(regdb);
-                       return ntstatus_to_werror(status);
-               } else {
-                       DEBUG(10, ("regdb_init: stored %s = %d\n",
-                                 vstring, REGVER_V2));
-               }
                if (regdb->transaction_commit(regdb) != 0) {
                        return WERR_REG_IO_FAILURE;
                }


-- 
Samba Shared Repository

Reply via email to