When re-writing tdb version numbers as little endian int32, we must
authorJeremy Allison <jra@samba.org>
Wed, 9 Jan 2002 05:24:07 +0000 (05:24 +0000)
committerJeremy Allison <jra@samba.org>
Wed, 9 Jan 2002 05:24:07 +0000 (05:24 +0000)
change the version number also.
Jeremy.
(This used to be commit 3dec9cf99a82bd15626eb99e7d937ff00183cc05)

source3/groupdb/mapping.c
source3/printing/nt_printing.c
source3/rpc_server/srv_srvsvc_nt.c

index 7093f14ecaedc540d79d8758e29b81b2943a3a1d..e732f26c156d4e87356849d6cf7e2df1aeb9d3f7 100644 (file)
@@ -26,7 +26,9 @@ extern DOM_SID global_sam_sid;
 
 static TDB_CONTEXT *tdb; /* used for driver files */
 
-#define DATABASE_VERSION 1
+#define DATABASE_VERSION_V1 1 /* native byte format. */
+#define DATABASE_VERSION_V2 2 /* le format. */
+
 #define GROUP_PREFIX "UNIXGROUP/"
 
 PRIVS privs[] = {
@@ -166,15 +168,15 @@ BOOL init_group_mapping(void)
 
        /* Cope with byte-reversed older versions of the db. */
        vers_id = tdb_fetch_int32(tdb, vstring);
-       if ((vers_id != DATABASE_VERSION) && (IREV(vers_id) == DATABASE_VERSION)) {
+       if ((vers_id == DATABASE_VERSION_V1) || (IREV(vers_id) == DATABASE_VERSION_V1)) {
                /* Written on a bigendian machine with old fetch_int code. Save as le. */
-               tdb_store_int32(tdb, vstring, DATABASE_VERSION);
-               vers_id = DATABASE_VERSION;
+               tdb_store_int32(tdb, vstring, DATABASE_VERSION_V2);
+               vers_id = DATABASE_VERSION_V2;
        }
 
-       if (vers_id != DATABASE_VERSION) {
+       if (vers_id != DATABASE_VERSION_V2) {
                tdb_traverse(tdb, tdb_traverse_delete_fn, NULL);
-               tdb_store_int32(tdb, vstring, DATABASE_VERSION);
+               tdb_store_int32(tdb, vstring, DATABASE_VERSION_V2);
        }
 
        tdb_unlock_bystring(tdb, vstring);
index 6c0e4c83e74569ed22b25cf37006689754686a35..d1ab5ce21d1abb2778948b0a8b000701ae153c53 100644 (file)
@@ -36,8 +36,9 @@ static TDB_CONTEXT *tdb_printers; /* used for printers files */
  
 #define NTDRIVERS_DATABASE_VERSION_1 1
 #define NTDRIVERS_DATABASE_VERSION_2 2
+#define NTDRIVERS_DATABASE_VERSION_3 3 /* little endian version of v2 */
  
-#define NTDRIVERS_DATABASE_VERSION NTDRIVERS_DATABASE_VERSION_2
+#define NTDRIVERS_DATABASE_VERSION NTDRIVERS_DATABASE_VERSION_3
 
 /* Map generic permissions to printer object specific permissions */
 
@@ -173,11 +174,11 @@ static nt_forms_struct default_forms[] = {
        {"PRC Envelope #10 Rotated",0x1,0x6fd10,0x4f1a0,0x0,0x0,0x6fd10,0x4f1a0}
 };
 
-static BOOL upgrade_to_version_2(void)
+static BOOL upgrade_to_version_3(void)
 {
        TDB_DATA kbuf, newkey, dbuf;
  
-       DEBUG(0,("upgrade_to_version_2: upgrading print tdb's to version 2\n"));
+       DEBUG(0,("upgrade_to_version_3: upgrading print tdb's to version 3\n"));
  
        for (kbuf = tdb_firstkey(tdb_drivers); kbuf.dptr;
                        newkey = tdb_nextkey(tdb_drivers, kbuf), safe_free(kbuf.dptr), kbuf=newkey) {
@@ -185,37 +186,37 @@ static BOOL upgrade_to_version_2(void)
                dbuf = tdb_fetch(tdb_drivers, kbuf);
 
                if (strncmp(kbuf.dptr, FORMS_PREFIX, strlen(FORMS_PREFIX)) == 0) {
-                       DEBUG(0,("upgrade_to_version_2:moving form\n"));
+                       DEBUG(0,("upgrade_to_version_3:moving form\n"));
                        if (tdb_store(tdb_forms, kbuf, dbuf, TDB_REPLACE) != 0) {
-                               DEBUG(0,("upgrade_to_version_2: failed to move form. Error (%s).\n", tdb_errorstr(tdb_forms)));
+                               DEBUG(0,("upgrade_to_version_3: failed to move form. Error (%s).\n", tdb_errorstr(tdb_forms)));
                                return False;
                        }
                        if (tdb_delete(tdb_drivers, kbuf) != 0) {
-                               DEBUG(0,("upgrade_to_version_2: failed to delete form. Error (%s)\n", tdb_errorstr(tdb_drivers)));
+                               DEBUG(0,("upgrade_to_version_3: failed to delete form. Error (%s)\n", tdb_errorstr(tdb_drivers)));
                                return False;
                        }
                }
  
                if (strncmp(kbuf.dptr, PRINTERS_PREFIX, strlen(PRINTERS_PREFIX)) == 0) {
-                       DEBUG(0,("upgrade_to_version_2:moving printer\n"));
+                       DEBUG(0,("upgrade_to_version_3:moving printer\n"));
                        if (tdb_store(tdb_printers, kbuf, dbuf, TDB_REPLACE) != 0) {
-                               DEBUG(0,("upgrade_to_version_2: failed to move printer. Error (%s)\n", tdb_errorstr(tdb_printers)));
+                               DEBUG(0,("upgrade_to_version_3: failed to move printer. Error (%s)\n", tdb_errorstr(tdb_printers)));
                                return False;
                        }
                        if (tdb_delete(tdb_drivers, kbuf) != 0) {
-                               DEBUG(0,("upgrade_to_version_2: failed to delete printer. Error (%s)\n", tdb_errorstr(tdb_drivers)));
+                               DEBUG(0,("upgrade_to_version_3: failed to delete printer. Error (%s)\n", tdb_errorstr(tdb_drivers)));
                                return False;
                        }
                }
  
                if (strncmp(kbuf.dptr, SECDESC_PREFIX, strlen(SECDESC_PREFIX)) == 0) {
-                       DEBUG(0,("upgrade_to_version_2:moving secdesc\n"));
+                       DEBUG(0,("upgrade_to_version_3:moving secdesc\n"));
                        if (tdb_store(tdb_printers, kbuf, dbuf, TDB_REPLACE) != 0) {
-                               DEBUG(0,("upgrade_to_version_2: failed to move secdesc. Error (%s)\n", tdb_errorstr(tdb_printers)));
+                               DEBUG(0,("upgrade_to_version_3: failed to move secdesc. Error (%s)\n", tdb_errorstr(tdb_printers)));
                                return False;
                        }
                        if (tdb_delete(tdb_drivers, kbuf) != 0) {
-                               DEBUG(0,("upgrade_to_version_2: failed to delete secdesc. Error (%s)\n", tdb_errorstr(tdb_drivers)));
+                               DEBUG(0,("upgrade_to_version_3: failed to delete secdesc. Error (%s)\n", tdb_errorstr(tdb_drivers)));
                                return False;
                        }
                }
@@ -227,8 +228,9 @@ static BOOL upgrade_to_version_2(void)
 }
 
 /****************************************************************************
-open the NT printing tdb
+ Open the NT printing tdb.
 ****************************************************************************/
+
 BOOL nt_printing_init(void)
 {
        static pid_t local_pid;
@@ -267,8 +269,9 @@ BOOL nt_printing_init(void)
 
                /* Cope with byte-reversed older versions of the db. */
                vers_id = tdb_fetch_int32(tdb_drivers, vstring);
-               if ((vers_id != NTDRIVERS_DATABASE_VERSION) && (IREV(vers_id) == NTDRIVERS_DATABASE_VERSION)) {
+               if ((vers_id == NTDRIVERS_DATABASE_VERSION_2) || (IREV(vers_id) == NTDRIVERS_DATABASE_VERSION_2)) {
                        /* Written on a bigendian machine with old fetch_int code. Save as le. */
+                       /* The only upgrade between V2 and V3 is to save the version in little-endian. */
                        tdb_store_int32(tdb_drivers, vstring, NTDRIVERS_DATABASE_VERSION);
                        vers_id = NTDRIVERS_DATABASE_VERSION;
                }
@@ -276,7 +279,7 @@ BOOL nt_printing_init(void)
                if (vers_id != NTDRIVERS_DATABASE_VERSION) {
  
                        if ((vers_id == NTDRIVERS_DATABASE_VERSION_1) || (IREV(vers_id) == NTDRIVERS_DATABASE_VERSION_1)) {
-                               if (!upgrade_to_version_2())
+                               if (!upgrade_to_version_3())
                                        return False;
                        } else
                                tdb_traverse(tdb_drivers, tdb_traverse_delete_fn, NULL);
index 57013829c559fe545b5fd100ecea47021958ed45..67442a7761439bd2bff923fec3e11d1d4df93391 100644 (file)
@@ -116,7 +116,8 @@ static void smb_conf_updated(int msg_type, pid_t src, void *buf, size_t len)
  ********************************************************************/
 
 static TDB_CONTEXT *share_tdb; /* used for share security descriptors */
-#define SHARE_DATABASE_VERSION 1
+#define SHARE_DATABASE_VERSION_V1 1
+#define SHARE_DATABASE_VERSION_V2 2 /* version id in little endian. */
 
 BOOL share_info_db_init(void)
 {
@@ -140,15 +141,15 @@ BOOL share_info_db_init(void)
 
        /* Cope with byte-reversed older versions of the db. */
        vers_id = tdb_fetch_int32(share_tdb, vstring);
-       if ((vers_id != SHARE_DATABASE_VERSION) && (IREV(vers_id) == SHARE_DATABASE_VERSION)) {
+       if ((vers_id == SHARE_DATABASE_VERSION_V1) || (IREV(vers_id) == SHARE_DATABASE_VERSION_V1)) {
                /* Written on a bigendian machine with old fetch_int code. Save as le. */
-               tdb_store_int32(share_tdb, vstring, SHARE_DATABASE_VERSION);
-               vers_id = SHARE_DATABASE_VERSION;
+               tdb_store_int32(share_tdb, vstring, SHARE_DATABASE_VERSION_V2);
+               vers_id = SHARE_DATABASE_VERSION_V2;
        }
 
-       if (vers_id != SHARE_DATABASE_VERSION) {
+       if (vers_id != SHARE_DATABASE_VERSION_V2) {
                tdb_traverse(share_tdb, tdb_traverse_delete_fn, NULL);
-               tdb_store_int32(share_tdb, vstring, SHARE_DATABASE_VERSION);
+               tdb_store_int32(share_tdb, vstring, SHARE_DATABASE_VERSION_V2);
        }
        tdb_unlock_bystring(share_tdb, vstring);