summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/param/secrets.c10
-rw-r--r--source4/param/secrets.h3
-rw-r--r--source4/smbd/server.c7
3 files changed, 10 insertions, 10 deletions
diff --git a/source4/param/secrets.c b/source4/param/secrets.c
index 70690a5e3b..0f3c1e36bb 100644
--- a/source4/param/secrets.c
+++ b/source4/param/secrets.c
@@ -49,22 +49,22 @@ static void get_rand_seed(struct tdb_wrap *secretsdb, int *new_seed)
}
/**
- * open up the secrets database
+ * open up the randseed database and set the random number generator callback
*/
-struct tdb_wrap *secrets_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx)
+bool randseed_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx)
{
char *fname;
uint8_t dummy;
struct tdb_wrap *tdb;
- fname = lpcfg_private_path(mem_ctx, lp_ctx, "secrets.tdb");
+ fname = lpcfg_private_path(mem_ctx, lp_ctx, "randseed.tdb");
tdb = tdb_wrap_open(mem_ctx, fname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
if (!tdb) {
DEBUG(0,("Failed to open %s\n", fname));
talloc_free(fname);
- return NULL;
+ return false;
}
talloc_free(fname);
@@ -79,7 +79,7 @@ struct tdb_wrap *secrets_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_c
/* Ensure that the reseed is done now, while we are root, etc */
generate_random_buffer(&dummy, sizeof(dummy));
- return tdb;
+ return true;
}
/**
diff --git a/source4/param/secrets.h b/source4/param/secrets.h
index 4cab9ccadd..6576929a0d 100644
--- a/source4/param/secrets.h
+++ b/source4/param/secrets.h
@@ -43,7 +43,8 @@ struct ldb_context;
#include "librpc/gen_ndr/misc.h"
-struct tdb_wrap *secrets_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx);
+bool randseed_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx);
+
struct ldb_context *secrets_db_connect(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx);
struct dom_sid *secrets_get_domain_sid(TALLOC_CTX *mem_ctx,
struct loadparm_context *lp_ctx,
diff --git a/source4/smbd/server.c b/source4/smbd/server.c
index 81dd78701e..4cd0263137 100644
--- a/source4/smbd/server.c
+++ b/source4/smbd/server.c
@@ -388,10 +388,9 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
pidfile_create(lpcfg_piddir(cmdline_lp_ctx), binary_name);
- /* Do *not* remove this, until you have removed
- * passdb/secrets.c, and proved that Samba still builds... */
- /* Setup the SECRETS subsystem */
- if (secrets_init(talloc_autofree_context(), cmdline_lp_ctx) == NULL) {
+ /* Set up a database to hold a random seed, in case we don't
+ * have /dev/urandom */
+ if (randseed_init(talloc_autofree_context(), cmdline_lp_ctx) == NULL) {
return 1;
}