mirror of
https://github.com/samba-team/samba.git
synced 2025-09-02 01:49:29 +03:00
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 commit is contained in:
@ -55,7 +55,7 @@ static bool init_group_mapping(void)
|
|||||||
/* this is needed as Samba3 doesn't have this globally yet */
|
/* this is needed as Samba3 doesn't have this globally yet */
|
||||||
ldb_global_init();
|
ldb_global_init();
|
||||||
|
|
||||||
db_path = lock_path("group_mapping.ldb");
|
db_path = state_path("group_mapping.ldb");
|
||||||
|
|
||||||
ldb = ldb_init(NULL);
|
ldb = ldb_init(NULL);
|
||||||
if (ldb == NULL) goto failed;
|
if (ldb == NULL) goto failed;
|
||||||
@ -89,9 +89,9 @@ static bool init_group_mapping(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* possibly upgrade */
|
/* 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)) {
|
if (file_exist(tdb_path, NULL) && !mapping_upgrade(tdb_path)) {
|
||||||
unlink(lock_path("group_mapping.ldb"));
|
unlink(state_path("group_mapping.ldb"));
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -638,7 +638,7 @@ static bool mapping_upgrade(const char *tdb_path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pstrcpy(old_path, 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) {
|
if (rename(old_path, new_path) != 0) {
|
||||||
DEBUG(0,("Failed to rename old group mapping database\n"));
|
DEBUG(0,("Failed to rename old group mapping database\n"));
|
||||||
|
@ -42,7 +42,7 @@ static bool init_group_mapping(void)
|
|||||||
if (tdb)
|
if (tdb)
|
||||||
return True;
|
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) {
|
if (!tdb) {
|
||||||
DEBUG(0,("Failed to open group mapping database\n"));
|
DEBUG(0,("Failed to open group mapping database\n"));
|
||||||
return False;
|
return False;
|
||||||
|
@ -127,7 +127,7 @@ bool lang_tdb_init(const char *lang)
|
|||||||
if (!lang)
|
if (!lang)
|
||||||
return True;
|
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) {
|
if (stat(msg_path, &st) != 0) {
|
||||||
/* the msg file isn't available */
|
/* the msg file isn't available */
|
||||||
DEBUG(10, ("lang_tdb_init: %s: %s\n", msg_path,
|
DEBUG(10, ("lang_tdb_init: %s: %s\n", msg_path,
|
||||||
|
@ -212,9 +212,9 @@ bool init_account_policy(void)
|
|||||||
return True;
|
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 */
|
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) {
|
if (!tdb) {
|
||||||
DEBUG(0,("Failed to open account policy database\n"));
|
DEBUG(0,("Failed to open account policy database\n"));
|
||||||
return False;
|
return False;
|
||||||
|
@ -46,10 +46,10 @@ bool share_info_db_init(void)
|
|||||||
return True;
|
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) {
|
if (!share_tdb) {
|
||||||
DEBUG(0,("Failed to open share info database %s (%s)\n",
|
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;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,11 +87,11 @@ void load_case_tables(void)
|
|||||||
}
|
}
|
||||||
initialised = 1;
|
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);
|
0x20000);
|
||||||
upcase_table_use_unmap = ( upcase_table != NULL );
|
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);
|
0x20000);
|
||||||
lowcase_table_use_unmap = ( lowcase_table != NULL );
|
lowcase_table_use_unmap = ( lowcase_table != NULL );
|
||||||
|
|
||||||
@ -229,7 +229,7 @@ void init_valid_table(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
valid_file = (uint8 *)map_file(lib_path("valid.dat"), 0x10000);
|
valid_file = (uint8 *)map_file(data_path("valid.dat"), 0x10000);
|
||||||
if (valid_file) {
|
if (valid_file) {
|
||||||
valid_table = valid_file;
|
valid_table = valid_file;
|
||||||
mapped_file = 1;
|
mapped_file = 1;
|
||||||
|
@ -584,7 +584,7 @@ bool initialise_wins(void)
|
|||||||
|
|
||||||
add_samba_names_to_subnet(wins_server_subnet);
|
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",
|
DEBUG(2,("initialise_wins: Can't open wins database file %s. Error was %s\n",
|
||||||
WINS_LIST, strerror(errno) ));
|
WINS_LIST, strerror(errno) ));
|
||||||
return True;
|
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);
|
all_string_sub(fname,"//", "/", 0);
|
||||||
slprintf(fnamenew,sizeof(fnamenew)-1,"%s.%u", fname, (unsigned int)sys_getpid());
|
slprintf(fnamenew,sizeof(fnamenew)-1,"%s.%u", fname, (unsigned int)sys_getpid());
|
||||||
|
|
||||||
|
@ -1696,7 +1696,7 @@ static void init_globals(bool first_time_only)
|
|||||||
Globals.bASUSupport = False;
|
Globals.bASUSupport = False;
|
||||||
|
|
||||||
/* User defined shares. */
|
/* User defined shares. */
|
||||||
pstrcpy(s, dyn_LOCKDIR);
|
pstrcpy(s, dyn_STATEDIR());
|
||||||
pstrcat(s, "/usershares");
|
pstrcat(s, "/usershares");
|
||||||
string_set(&Globals.szUsersharePath, s);
|
string_set(&Globals.szUsersharePath, s);
|
||||||
string_set(&Globals.szUsershareTemplateShare, "");
|
string_set(&Globals.szUsershareTemplateShare, "");
|
||||||
@ -3340,12 +3340,12 @@ static struct tdb_wrap *lp_regdb_open(void)
|
|||||||
uint32 vers_id;
|
uint32 vers_id;
|
||||||
|
|
||||||
become_root();
|
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);
|
REG_TDB_FLAGS, O_RDWR, 0600);
|
||||||
unbecome_root();
|
unbecome_root();
|
||||||
if (!reg_tdb) {
|
if (!reg_tdb) {
|
||||||
DEBUG(1, ("lp_regdb_open: failed to open %s: %s\n",
|
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;
|
goto done;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -3356,7 +3356,7 @@ static struct tdb_wrap *lp_regdb_open(void)
|
|||||||
if (vers_id != REGVER_V1) {
|
if (vers_id != REGVER_V1) {
|
||||||
DEBUG(10, ("lp_regdb_open: INFO: registry tdb %s has wrong "
|
DEBUG(10, ("lp_regdb_open: INFO: registry tdb %s has wrong "
|
||||||
"INFO/version (got %d, expected %d)\n",
|
"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 */
|
/* this is apparently not implemented in the tdb */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1542,7 +1542,7 @@ static bool tdbsam_new_rid(struct pdb_methods *methods, uint32 *prid)
|
|||||||
uint32 rid;
|
uint32 rid;
|
||||||
bool ret = False;
|
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);
|
TDB_DEFAULT, O_RDWR | O_CREAT, 0644);
|
||||||
|
|
||||||
if (tdb == NULL) {
|
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 */
|
/* save the path for later */
|
||||||
|
|
||||||
if ( !location ) {
|
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;
|
pfile = tdbfile;
|
||||||
}
|
}
|
||||||
pstrcpy( tdbsam_filename, pfile );
|
pstrcpy( tdbsam_filename, pfile );
|
||||||
|
@ -552,28 +552,28 @@ bool nt_printing_init(struct messaging_context *msg_ctx)
|
|||||||
|
|
||||||
if (tdb_drivers)
|
if (tdb_drivers)
|
||||||
tdb_close(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) {
|
if (!tdb_drivers) {
|
||||||
DEBUG(0,("nt_printing_init: Failed to open nt drivers database %s (%s)\n",
|
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;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tdb_printers)
|
if (tdb_printers)
|
||||||
tdb_close(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) {
|
if (!tdb_printers) {
|
||||||
DEBUG(0,("nt_printing_init: Failed to open nt printers database %s (%s)\n",
|
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;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tdb_forms)
|
if (tdb_forms)
|
||||||
tdb_close(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) {
|
if (!tdb_forms) {
|
||||||
DEBUG(0,("nt_printing_init: Failed to open nt forms database %s (%s)\n",
|
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;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,12 +230,12 @@ bool regdb_init( void )
|
|||||||
if ( tdb_reg )
|
if ( tdb_reg )
|
||||||
return True;
|
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 ) {
|
if ( !tdb_reg ) {
|
||||||
DEBUG(0,("regdb_init: Failed to open registry %s (%s)\n",
|
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;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -278,11 +278,11 @@ WERROR regdb_open( void )
|
|||||||
|
|
||||||
become_root();
|
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 ) {
|
if ( !tdb_reg ) {
|
||||||
result = ntstatus_to_werror( map_nt_error_from_unix( errno ) );
|
result = ntstatus_to_werror( map_nt_error_from_unix( errno ) );
|
||||||
DEBUG(0,("regdb_open: Failed to open %s! (%s)\n",
|
DEBUG(0,("regdb_open: Failed to open %s! (%s)\n",
|
||||||
lock_path("registry.tdb"), strerror(errno) ));
|
state_path("registry.tdb"), strerror(errno) ));
|
||||||
}
|
}
|
||||||
|
|
||||||
unbecome_root();
|
unbecome_root();
|
||||||
|
@ -45,7 +45,7 @@ static char* counters_directory( const char *dbname )
|
|||||||
|
|
||||||
fstr_sprintf( path, "%s/%s", PERFCOUNTDIR, dbname );
|
fstr_sprintf( path, "%s/%s", PERFCOUNTDIR, dbname );
|
||||||
|
|
||||||
pstrcpy( fname, lock_path( path ) );
|
pstrcpy( fname, state_path( path ) );
|
||||||
|
|
||||||
return talloc_strdup(talloc_tos(), fname);
|
return talloc_strdup(talloc_tos(), fname);
|
||||||
}
|
}
|
||||||
@ -55,7 +55,7 @@ static char* counters_directory( const char *dbname )
|
|||||||
|
|
||||||
void perfcount_init_keys( void )
|
void perfcount_init_keys( void )
|
||||||
{
|
{
|
||||||
char *p = lock_path(PERFCOUNTDIR);
|
char *p = state_path(PERFCOUNTDIR);
|
||||||
|
|
||||||
/* no registry keys; just create the perfmon directory */
|
/* no registry keys; just create the perfmon directory */
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ char *elog_tdbname( const char *name )
|
|||||||
{
|
{
|
||||||
fstring path;
|
fstring path;
|
||||||
char *tdb_fullpath;
|
char *tdb_fullpath;
|
||||||
char *eventlogdir = lock_path( "eventlog" );
|
char *eventlogdir = state_path( "eventlog" );
|
||||||
|
|
||||||
pstr_sprintf( path, "%s/%s.tdb", eventlogdir, name );
|
pstr_sprintf( path, "%s/%s.tdb", eventlogdir, name );
|
||||||
strlower_m( path );
|
strlower_m( path );
|
||||||
@ -348,7 +348,7 @@ ELOG_TDB *elog_open_tdb( char *logname, bool force_clear )
|
|||||||
|
|
||||||
/* make sure that the eventlog dir exists */
|
/* make sure that the eventlog dir exists */
|
||||||
|
|
||||||
eventlogdir = lock_path( "eventlog" );
|
eventlogdir = state_path( "eventlog" );
|
||||||
if ( !directory_exist( eventlogdir, NULL ) )
|
if ( !directory_exist( eventlogdir, NULL ) )
|
||||||
mkdir( eventlogdir, 0755 );
|
mkdir( eventlogdir, 0755 );
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ static NTSTATUS idmap_tdb_open_db(TALLOC_CTX *memctx, TDB_CONTEXT **tdbctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* use the old database if present */
|
/* 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) {
|
if (!tdbfile) {
|
||||||
DEBUG(0, ("Out of memory!\n"));
|
DEBUG(0, ("Out of memory!\n"));
|
||||||
ret = NT_STATUS_NO_MEMORY;
|
ret = NT_STATUS_NO_MEMORY;
|
||||||
|
Reference in New Issue
Block a user