summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/include/messages.h2
-rw-r--r--source3/lib/messages_local.c16
-rw-r--r--source3/smbd/server.c4
3 files changed, 22 insertions, 0 deletions
diff --git a/source3/include/messages.h b/source3/include/messages.h
index 6063d358ea..865ffd4822 100644
--- a/source3/include/messages.h
+++ b/source3/include/messages.h
@@ -111,6 +111,8 @@ NTSTATUS messaging_tdb_init(struct messaging_context *msg_ctx,
TALLOC_CTX *mem_ctx,
struct messaging_backend **presult);
+bool messaging_tdb_parent_init(void);
+
NTSTATUS messaging_ctdbd_init(struct messaging_context *msg_ctx,
TALLOC_CTX *mem_ctx,
struct messaging_backend **presult);
diff --git a/source3/lib/messages_local.c b/source3/lib/messages_local.c
index a58c7eb95f..b1712823a1 100644
--- a/source3/lib/messages_local.c
+++ b/source3/lib/messages_local.c
@@ -133,6 +133,22 @@ NTSTATUS messaging_tdb_init(struct messaging_context *msg_ctx,
return NT_STATUS_OK;
}
+bool messaging_tdb_parent_init(void)
+{
+ struct tdb_wrap *db;
+
+ db = tdb_wrap_open(talloc_autofree_context(),
+ lock_path("messages.tdb"), 0,
+ TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_VOLATILE,
+ O_RDWR|O_CREAT,0600);
+ if (db == NULL) {
+ DEBUG(1, ("could not open messaging.tdb: %s\n",
+ strerror(errno)));
+ return false;
+ }
+ return true;
+}
+
/*******************************************************************
Form a static tdb key from a pid.
******************************************************************/
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 81d75b13a0..0a6d66c180 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -1296,6 +1296,10 @@ extern void build_options(bool screen);
if (!locking_init())
exit(1);
+ if (!messaging_tdb_parent_init()) {
+ exit(1);
+ }
+
namecache_enable();
if (!W_ERROR_IS_OK(registry_init_full()))