From 88ee61625a5de5e443d14c54eab91a90d87cda85 Mon Sep 17 00:00:00 2001 From: "Gerald (Jerry) Carter" Date: Thu, 1 Nov 2007 15:53:44 -0400 Subject: [PATCH] Patch 2 of 3 from Debian Samba packagers: 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) --- source3/groupdb/mapping_ldb.c | 8 ++++---- source3/groupdb/mapping_tdb.c | 2 +- source3/intl/lang_tdb.c | 2 +- source3/lib/account_pol.c | 4 ++-- source3/lib/sharesec.c | 4 ++-- source3/lib/util_unistr.c | 6 +++--- source3/nmbd/nmbd_winsserver.c | 4 ++-- source3/param/loadparm.c | 8 ++++---- source3/passdb/pdb_tdb.c | 4 ++-- source3/printing/nt_printing.c | 12 ++++++------ source3/registry/reg_db.c | 10 +++++----- source3/registry/reg_perfcount.c | 4 ++-- source3/rpc_server/srv_eventlog_lib.c | 4 ++-- source3/winbindd/idmap_tdb.c | 2 +- 14 files changed, 37 insertions(+), 37 deletions(-) diff --git a/source3/groupdb/mapping_ldb.c b/source3/groupdb/mapping_ldb.c index c0b2e82a29a..be1f1593fb6 100644 --- a/source3/groupdb/mapping_ldb.c +++ b/source3/groupdb/mapping_ldb.c @@ -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")); diff --git a/source3/groupdb/mapping_tdb.c b/source3/groupdb/mapping_tdb.c index 5bfe96622df..f0f875d0822 100644 --- a/source3/groupdb/mapping_tdb.c +++ b/source3/groupdb/mapping_tdb.c @@ -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; diff --git a/source3/intl/lang_tdb.c b/source3/intl/lang_tdb.c index e2e708332da..bb780c5feda 100644 --- a/source3/intl/lang_tdb.c +++ b/source3/intl/lang_tdb.c @@ -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, diff --git a/source3/lib/account_pol.c b/source3/lib/account_pol.c index 96a471cf06e..2540b493149 100644 --- a/source3/lib/account_pol.c +++ b/source3/lib/account_pol.c @@ -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; diff --git a/source3/lib/sharesec.c b/source3/lib/sharesec.c index 244a6d7285c..e2320b2953c 100644 --- a/source3/lib/sharesec.c +++ b/source3/lib/sharesec.c @@ -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; } diff --git a/source3/lib/util_unistr.c b/source3/lib/util_unistr.c index 2b91ea9c80b..e9e2c33fb38 100644 --- a/source3/lib/util_unistr.c +++ b/source3/lib/util_unistr.c @@ -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; diff --git a/source3/nmbd/nmbd_winsserver.c b/source3/nmbd/nmbd_winsserver.c index 70303af48b1..736bbf4068e 100644 --- a/source3/nmbd/nmbd_winsserver.c +++ b/source3/nmbd/nmbd_winsserver.c @@ -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()); diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index a5b26475679..e59aa990489 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -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 */ } diff --git a/source3/passdb/pdb_tdb.c b/source3/passdb/pdb_tdb.c index 530660f48ca..79427a587cd 100644 --- a/source3/passdb/pdb_tdb.c +++ b/source3/passdb/pdb_tdb.c @@ -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 ); diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c index 5276c2d78ca..36add6f474e 100644 --- a/source3/printing/nt_printing.c +++ b/source3/printing/nt_printing.c @@ -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; } diff --git a/source3/registry/reg_db.c b/source3/registry/reg_db.c index 99330120e50..8dd61fcdffb 100644 --- a/source3/registry/reg_db.c +++ b/source3/registry/reg_db.c @@ -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(); diff --git a/source3/registry/reg_perfcount.c b/source3/registry/reg_perfcount.c index 44b5a5e2893..1fd9b36a514 100644 --- a/source3/registry/reg_perfcount.c +++ b/source3/registry/reg_perfcount.c @@ -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 */ diff --git a/source3/rpc_server/srv_eventlog_lib.c b/source3/rpc_server/srv_eventlog_lib.c index 3f06f0f39fa..00afe5b05c3 100644 --- a/source3/rpc_server/srv_eventlog_lib.c +++ b/source3/rpc_server/srv_eventlog_lib.c @@ -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 ); diff --git a/source3/winbindd/idmap_tdb.c b/source3/winbindd/idmap_tdb.c index 881377bda6e..1ec7085a3be 100644 --- a/source3/winbindd/idmap_tdb.c +++ b/source3/winbindd/idmap_tdb.c @@ -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; -- 2.34.1