Patch 2 of 3 from Debian Samba packagers:
authorGerald (Jerry) Carter <jerry@samba.org>
Thu, 1 Nov 2007 19:53:44 +0000 (15:53 -0400)
committerGerald (Jerry) Carter <jerry@samba.org>
Thu, 1 Nov 2007 19:53:44 +0000 (15:53 -0400)
The point is doing the following associations:

- non discardable state data (all TDB files that may need to be backed
  up) go to statedir
- shared data (codepage stuff) go to codepagedir

The patch *does not change* the default location for these
directories. So, there is no behaviour change when applying it.

The main change is for samba developers who have to think when dealing
with files that previously pertained to libdir whether they:
- go in statedir
- go in codepagedir
- stay in libdir
(This used to be commit d6cdbfd875bb2653e831d314726c3240beb0a96b)

14 files changed:
source3/groupdb/mapping_ldb.c
source3/groupdb/mapping_tdb.c
source3/intl/lang_tdb.c
source3/lib/account_pol.c
source3/lib/sharesec.c
source3/lib/util_unistr.c
source3/nmbd/nmbd_winsserver.c
source3/param/loadparm.c
source3/passdb/pdb_tdb.c
source3/printing/nt_printing.c
source3/registry/reg_db.c
source3/registry/reg_perfcount.c
source3/rpc_server/srv_eventlog_lib.c
source3/winbindd/idmap_tdb.c

index c0b2e82a29a6fd6e7cfe37330cb7ab1c9cf0c5b8..be1f1593fb6d593e3f7121058cbe8be7ac17a9dc 100644 (file)
@@ -55,7 +55,7 @@ static bool init_group_mapping(void)
        /* this is needed as Samba3 doesn't have this globally yet */
        ldb_global_init();
 
-       db_path = lock_path("group_mapping.ldb");
+       db_path = state_path("group_mapping.ldb");
 
        ldb = ldb_init(NULL);
        if (ldb == NULL) goto failed;
@@ -89,9 +89,9 @@ static bool init_group_mapping(void)
        }
 
        /* possibly upgrade */
-       tdb_path = lock_path("group_mapping.tdb");
+       tdb_path = state_path("group_mapping.tdb");
        if (file_exist(tdb_path, NULL) && !mapping_upgrade(tdb_path)) {
-               unlink(lock_path("group_mapping.ldb"));
+               unlink(state_path("group_mapping.ldb"));
                goto failed;
        }
 
@@ -638,7 +638,7 @@ static bool mapping_upgrade(const char *tdb_path)
        }
 
        pstrcpy(old_path, tdb_path);
-       pstrcpy(new_path, lock_path("group_mapping.tdb.upgraded"));
+       pstrcpy(new_path, state_path("group_mapping.tdb.upgraded"));
 
        if (rename(old_path, new_path) != 0) {
                DEBUG(0,("Failed to rename old group mapping database\n"));
index 5bfe96622df1cca78b4681054b86a1cdde6ac3da..f0f875d0822fcdf9a1d3ca4ddfccd67d8e38c9c4 100644 (file)
@@ -42,7 +42,7 @@ static bool init_group_mapping(void)
        if (tdb)
                return True;
                
-       tdb = tdb_open_log(lock_path("group_mapping.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+       tdb = tdb_open_log(state_path("group_mapping.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
        if (!tdb) {
                DEBUG(0,("Failed to open group mapping database\n"));
                return False;
index e2e708332da9e52aed1972ff304da89751e8cf90..bb780c5feda6afd23e74cd6531b83d39006653f3 100644 (file)
@@ -127,7 +127,7 @@ bool lang_tdb_init(const char *lang)
        if (!lang) 
                return True;
 
-       asprintf(&msg_path, "%s.msg", lib_path((const char *)lang));
+       asprintf(&msg_path, "%s.msg", data_path((const char *)lang));
        if (stat(msg_path, &st) != 0) {
                /* the msg file isn't available */
                DEBUG(10, ("lang_tdb_init: %s: %s\n", msg_path, 
index 96a471cf06e7cae957315c7ef116686c6bfc2c3a..2540b49314934ff9602c2001992a4c9c97f8987f 100644 (file)
@@ -212,9 +212,9 @@ bool init_account_policy(void)
                return True;
        }
 
-       tdb = tdb_open_log(lock_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600);
+       tdb = tdb_open_log(state_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600);
        if (!tdb) { /* the account policies files does not exist or open failed, try to create a new one */
-               tdb = tdb_open_log(lock_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+               tdb = tdb_open_log(state_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
                if (!tdb) {
                        DEBUG(0,("Failed to open account policy database\n"));
                        return False;
index 244a6d7285cdfa9b2fc593c5a04f98c02d404e20..e2320b2953cca6e0f85ccf642faa91e8f1dfecda 100644 (file)
@@ -46,10 +46,10 @@ bool share_info_db_init(void)
                return True;
        }
 
-       share_tdb = tdb_open_log(lock_path("share_info.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+       share_tdb = tdb_open_log(state_path("share_info.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
        if (!share_tdb) {
                DEBUG(0,("Failed to open share info database %s (%s)\n",
-                       lock_path("share_info.tdb"), strerror(errno) ));
+                       state_path("share_info.tdb"), strerror(errno) ));
                return False;
        }
  
index 2b91ea9c80bf888be069eb3a11bf44ff001422c8..e9e2c33fb3822e5e0c953db2af51a007c36b2b63 100644 (file)
@@ -87,11 +87,11 @@ void load_case_tables(void)
        }
        initialised = 1;
 
-       upcase_table = (smb_ucs2_t *)map_file(lib_path("upcase.dat"),
+       upcase_table = (smb_ucs2_t *)map_file(data_path("upcase.dat"),
                                              0x20000);
        upcase_table_use_unmap = ( upcase_table != NULL );
 
-       lowcase_table = (smb_ucs2_t *)map_file(lib_path("lowcase.dat"),
+       lowcase_table = (smb_ucs2_t *)map_file(data_path("lowcase.dat"),
                                               0x20000);
        lowcase_table_use_unmap = ( lowcase_table != NULL );
 
@@ -229,7 +229,7 @@ void init_valid_table(void)
                return;
        }
 
-       valid_file = (uint8 *)map_file(lib_path("valid.dat"), 0x10000);
+       valid_file = (uint8 *)map_file(data_path("valid.dat"), 0x10000);
        if (valid_file) {
                valid_table = valid_file;
                mapped_file = 1;
index 70303af48b15537c1767f7314c1130aec919cfe0..736bbf4068e3fb96814b749759e8b3d90b4b0a8e 100644 (file)
@@ -584,7 +584,7 @@ bool initialise_wins(void)
 
        add_samba_names_to_subnet(wins_server_subnet);
 
-       if((fp = x_fopen(lock_path(WINS_LIST),O_RDONLY,0)) == NULL) {
+       if((fp = x_fopen(state_path(WINS_LIST),O_RDONLY,0)) == NULL) {
                DEBUG(2,("initialise_wins: Can't open wins database file %s. Error was %s\n",
                        WINS_LIST, strerror(errno) ));
                return True;
@@ -2337,7 +2337,7 @@ void wins_write_database(time_t t, bool background)
                }
        }
 
-       slprintf(fname,sizeof(fname)-1,"%s/%s", lp_lockdir(), WINS_LIST);
+       slprintf(fname,sizeof(fname)-1,"%s/%s", dyn_STATEDIR(), WINS_LIST);
        all_string_sub(fname,"//", "/", 0);
        slprintf(fnamenew,sizeof(fnamenew)-1,"%s.%u", fname, (unsigned int)sys_getpid());
 
index a5b264756795ef6ada87b6c0f62cd4bc2625bf9c..e59aa990489300a18f1b82321fc6585d55afba8c 100644 (file)
@@ -1696,7 +1696,7 @@ static void init_globals(bool first_time_only)
        Globals.bASUSupport       = False;
        
        /* User defined shares. */
-       pstrcpy(s, dyn_LOCKDIR);
+       pstrcpy(s, dyn_STATEDIR());
        pstrcat(s, "/usershares");
        string_set(&Globals.szUsersharePath, s);
        string_set(&Globals.szUsershareTemplateShare, "");
@@ -3340,12 +3340,12 @@ static struct tdb_wrap *lp_regdb_open(void)
        uint32 vers_id;
 
        become_root();
-       reg_tdb = tdb_wrap_open(NULL, lock_path("registry.tdb"), 0, 
+       reg_tdb = tdb_wrap_open(NULL, state_path("registry.tdb"), 0, 
                                REG_TDB_FLAGS, O_RDWR, 0600);
        unbecome_root();
        if (!reg_tdb) {
                DEBUG(1, ("lp_regdb_open: failed to open %s: %s\n",
-                        lock_path("registry.tdb"), strerror(errno)));
+                        state_path("registry.tdb"), strerror(errno)));
                goto done;
        }
        else {
@@ -3356,7 +3356,7 @@ static struct tdb_wrap *lp_regdb_open(void)
        if (vers_id != REGVER_V1) {
                DEBUG(10, ("lp_regdb_open: INFO: registry tdb %s has wrong "
                          "INFO/version (got %d, expected %d)\n",
-                         lock_path("registry.tdb"), vers_id, REGVER_V1));
+                         state_path("registry.tdb"), vers_id, REGVER_V1));
                /* this is apparently not implemented in the tdb */
        }
 
index 530660f48ca97b784887cf89aa974c99daadeb28..79427a587cd0587d740644f89df85f20ec865e3d 100644 (file)
@@ -1542,7 +1542,7 @@ static bool tdbsam_new_rid(struct pdb_methods *methods, uint32 *prid)
        uint32 rid;
        bool ret = False;
 
-       tdb = tdb_open_log(lock_path("winbindd_idmap.tdb"), 0,
+       tdb = tdb_open_log(state_path("winbindd_idmap.tdb"), 0,
                           TDB_DEFAULT, O_RDWR | O_CREAT, 0644);
 
        if (tdb == NULL) {
@@ -1606,7 +1606,7 @@ static NTSTATUS pdb_init_tdbsam(struct pdb_methods **pdb_method, const char *loc
        /* save the path for later */
                           
        if ( !location ) {
-               pstr_sprintf( tdbfile, "%s/%s", lp_private_dir(), PASSDB_FILE_NAME );
+               pstr_sprintf( tdbfile, "%s/%s", dyn_STATEDIR(), PASSDB_FILE_NAME );
                pfile = tdbfile;
        }
        pstrcpy( tdbsam_filename, pfile );
index 5276c2d78ca329e412271ebc89387f108c1d3256..36add6f474e5644587fe2073718a39a43048b027 100644 (file)
@@ -552,28 +552,28 @@ bool nt_printing_init(struct messaging_context *msg_ctx)
  
        if (tdb_drivers)
                tdb_close(tdb_drivers);
-       tdb_drivers = tdb_open_log(lock_path("ntdrivers.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+       tdb_drivers = tdb_open_log(state_path("ntdrivers.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
        if (!tdb_drivers) {
                DEBUG(0,("nt_printing_init: Failed to open nt drivers database %s (%s)\n",
-                       lock_path("ntdrivers.tdb"), strerror(errno) ));
+                       state_path("ntdrivers.tdb"), strerror(errno) ));
                return False;
        }
  
        if (tdb_printers)
                tdb_close(tdb_printers);
-       tdb_printers = tdb_open_log(lock_path("ntprinters.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+       tdb_printers = tdb_open_log(state_path("ntprinters.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
        if (!tdb_printers) {
                DEBUG(0,("nt_printing_init: Failed to open nt printers database %s (%s)\n",
-                       lock_path("ntprinters.tdb"), strerror(errno) ));
+                       state_path("ntprinters.tdb"), strerror(errno) ));
                return False;
        }
  
        if (tdb_forms)
                tdb_close(tdb_forms);
-       tdb_forms = tdb_open_log(lock_path("ntforms.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+       tdb_forms = tdb_open_log(state_path("ntforms.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
        if (!tdb_forms) {
                DEBUG(0,("nt_printing_init: Failed to open nt forms database %s (%s)\n",
-                       lock_path("ntforms.tdb"), strerror(errno) ));
+                       state_path("ntforms.tdb"), strerror(errno) ));
                return False;
        }
  
index 99330120e505e95f4f933bc68a7feaf78966f360..8dd61fcdffb59b9f978ad808864ca635710f37cc 100644 (file)
@@ -230,12 +230,12 @@ bool regdb_init( void )
        if ( tdb_reg )
                return True;
 
-       if ( !(tdb_reg = tdb_wrap_open(NULL, lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR, 0600)) )
+       if ( !(tdb_reg = tdb_wrap_open(NULL, state_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR, 0600)) )
        {
-               tdb_reg = tdb_wrap_open(NULL, lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR|O_CREAT, 0600);
+               tdb_reg = tdb_wrap_open(NULL, state_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR|O_CREAT, 0600);
                if ( !tdb_reg ) {
                        DEBUG(0,("regdb_init: Failed to open registry %s (%s)\n",
-                               lock_path("registry.tdb"), strerror(errno) ));
+                               state_path("registry.tdb"), strerror(errno) ));
                        return False;
                }
                
@@ -278,11 +278,11 @@ WERROR regdb_open( void )
        
        become_root();
 
-       tdb_reg = tdb_wrap_open(NULL, lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR, 0600);
+       tdb_reg = tdb_wrap_open(NULL, state_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR, 0600);
        if ( !tdb_reg ) {
                result = ntstatus_to_werror( map_nt_error_from_unix( errno ) );
                DEBUG(0,("regdb_open: Failed to open %s! (%s)\n", 
-                       lock_path("registry.tdb"), strerror(errno) ));
+                       state_path("registry.tdb"), strerror(errno) ));
        }
 
        unbecome_root();
index 44b5a5e289313cfa2bf42ce25a1dc08496d0c022..1fd9b36a5140bac46782e6ef43b807496cac143a 100644 (file)
@@ -45,7 +45,7 @@ static char* counters_directory( const char *dbname )
        
        fstr_sprintf( path, "%s/%s", PERFCOUNTDIR, dbname );
        
-       pstrcpy( fname, lock_path( path ) );
+       pstrcpy( fname, state_path( path ) );
        
        return talloc_strdup(talloc_tos(), fname);
 }
@@ -55,7 +55,7 @@ static char* counters_directory( const char *dbname )
 
 void perfcount_init_keys( void )
 {
-       char *p = lock_path(PERFCOUNTDIR);
+       char *p = state_path(PERFCOUNTDIR);
 
        /* no registry keys; just create the perfmon directory */
        
index 3f06f0f39fa99ac38c79724dedbf5c62b04e6856..00afe5b05c30c4ad0dc86f40c5a48b169211091e 100644 (file)
@@ -66,7 +66,7 @@ char *elog_tdbname( const char *name )
 {
        fstring path;
        char *tdb_fullpath;
-       char *eventlogdir = lock_path( "eventlog" );
+       char *eventlogdir = state_path( "eventlog" );
        
        pstr_sprintf( path, "%s/%s.tdb", eventlogdir, name );
        strlower_m( path );
@@ -348,7 +348,7 @@ ELOG_TDB *elog_open_tdb( char *logname, bool force_clear )
        
        /* make sure that the eventlog dir exists */
        
-       eventlogdir = lock_path( "eventlog" );
+       eventlogdir = state_path( "eventlog" );
        if ( !directory_exist( eventlogdir, NULL ) )
                mkdir( eventlogdir, 0755 );     
        
index 881377bda6e0fb1b79fdf534274ac5c514e57356..1ec7085a3be0ae63acacdb76f4579e4aa1474027 100644 (file)
@@ -221,7 +221,7 @@ static NTSTATUS idmap_tdb_open_db(TALLOC_CTX *memctx, TDB_CONTEXT **tdbctx)
        }
 
        /* use the old database if present */
-       tdbfile = talloc_strdup(ctx, lock_path("winbindd_idmap.tdb"));
+       tdbfile = talloc_strdup(ctx, state_path("winbindd_idmap.tdb"));
        if (!tdbfile) {
                DEBUG(0, ("Out of memory!\n"));
                ret = NT_STATUS_NO_MEMORY;