mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
passdb: Add a function to read secrets db from a specified path
This allows to load secrets db from a different location. The original secrets_init() now calls secrets_init_path() with lp_private_dir().
This commit is contained in:
parent
6f21f556c1
commit
08ccc6ed51
@ -81,6 +81,7 @@ struct afs_keyfile {
|
||||
|
||||
/* The following definitions come from passdb/secrets.c */
|
||||
|
||||
bool secrets_init_path(const char *private_dir);
|
||||
bool secrets_init(void);
|
||||
struct db_context *secrets_db_ctx(void);
|
||||
void secrets_shutdown(void);
|
||||
|
@ -55,19 +55,24 @@ static void get_rand_seed(void *userdata, int *new_seed)
|
||||
}
|
||||
}
|
||||
|
||||
/* open up the secrets database */
|
||||
bool secrets_init(void)
|
||||
/* open up the secrets database with specified private_dir path */
|
||||
bool secrets_init_path(const char *private_dir)
|
||||
{
|
||||
char *fname = NULL;
|
||||
unsigned char dummy;
|
||||
|
||||
if (db_ctx != NULL)
|
||||
if (db_ctx != NULL) {
|
||||
return True;
|
||||
}
|
||||
|
||||
if (private_dir == NULL) {
|
||||
return False;
|
||||
}
|
||||
|
||||
fname = talloc_asprintf(talloc_tos(), "%s/secrets.tdb",
|
||||
lp_private_dir());
|
||||
private_dir);
|
||||
if (fname == NULL) {
|
||||
return false;
|
||||
return False;
|
||||
}
|
||||
|
||||
db_ctx = db_open(NULL, fname, 0,
|
||||
@ -75,7 +80,6 @@ bool secrets_init(void)
|
||||
|
||||
if (db_ctx == NULL) {
|
||||
DEBUG(0,("Failed to open %s\n", fname));
|
||||
TALLOC_FREE(fname);
|
||||
return False;
|
||||
}
|
||||
|
||||
@ -95,6 +99,12 @@ bool secrets_init(void)
|
||||
return True;
|
||||
}
|
||||
|
||||
/* open up the secrets database */
|
||||
bool secrets_init(void)
|
||||
{
|
||||
return secrets_init_path(lp_private_dir());
|
||||
}
|
||||
|
||||
struct db_context *secrets_db_ctx(void)
|
||||
{
|
||||
if (!secrets_init()) {
|
||||
|
Loading…
Reference in New Issue
Block a user