summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2014-07-17 11:47:32 +0000
committerJeremy Allison <jra@samba.org>2014-08-11 23:57:13 +0200
commitbab01d1a89c51a1c9ff1bc80bcabf840d5f0308f (patch)
tree6933c3afe84b897b6623e3b1773c8e0994069ac6
parentf408a428962e6b7ccbbe580ac853cbba283b3c8f (diff)
downloadsamba-bab01d1a89c51a1c9ff1bc80bcabf840d5f0308f.tar.gz
samba-bab01d1a89c51a1c9ff1bc80bcabf840d5f0308f.tar.xz
samba-bab01d1a89c51a1c9ff1bc80bcabf840d5f0308f.zip
messaging3: Pass dir_owner to messaging_dgm_init()
-rw-r--r--source3/include/messages.h1
-rw-r--r--source3/lib/messages.c4
-rw-r--r--source3/lib/messages_dgm.c11
3 files changed, 9 insertions, 7 deletions
diff --git a/source3/include/messages.h b/source3/include/messages.h
index 8d8268ef57..81f29db5d7 100644
--- a/source3/include/messages.h
+++ b/source3/include/messages.h
@@ -78,6 +78,7 @@ int messaging_dgm_init(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct server_id pid,
const char *cache_dir,
+ uid_t dir_owner,
void (*recv_cb)(int msg_type,
struct server_id src,
struct server_id dst,
diff --git a/source3/lib/messages.c b/source3/lib/messages.c
index a2954ed149..37953ba816 100644
--- a/source3/lib/messages.c
+++ b/source3/lib/messages.c
@@ -248,7 +248,7 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
sec_init();
ret = messaging_dgm_init(ctx, ctx->event_ctx, ctx->id,
- lp_cache_directory(),
+ lp_cache_directory(), sec_initial_uid(),
messaging_recv_cb, ctx, &ctx->local);
if (ret != 0) {
@@ -308,7 +308,7 @@ NTSTATUS messaging_reinit(struct messaging_context *msg_ctx)
msg_ctx->id = procid_self();
ret = messaging_dgm_init(msg_ctx, msg_ctx->event_ctx, msg_ctx->id,
- lp_cache_directory(),
+ lp_cache_directory(), sec_initial_uid(),
messaging_recv_cb, msg_ctx,
&msg_ctx->local);
if (ret != 0) {
diff --git a/source3/lib/messages_dgm.c b/source3/lib/messages_dgm.c
index da93f949cc..3258bb49a3 100644
--- a/source3/lib/messages_dgm.c
+++ b/source3/lib/messages_dgm.c
@@ -57,7 +57,8 @@ static void messaging_dgm_recv(struct unix_msg_ctx *ctx,
static int messaging_dgm_context_destructor(struct messaging_dgm_context *c);
static int messaging_dgm_lockfile_create(TALLOC_CTX *tmp_ctx,
- const char *cache_dir, pid_t pid,
+ const char *cache_dir,
+ uid_t dir_owner, pid_t pid,
int *plockfile_fd, uint64_t unique)
{
fstring buf;
@@ -74,7 +75,7 @@ static int messaging_dgm_lockfile_create(TALLOC_CTX *tmp_ctx,
return ENOMEM;
}
- ok = directory_create_or_exist_strict(dir, sec_initial_uid(), 0755);
+ ok = directory_create_or_exist_strict(dir, dir_owner, 0755);
if (!ok) {
ret = errno;
DEBUG(1, ("%s: Could not create lock directory: %s\n",
@@ -171,6 +172,7 @@ int messaging_dgm_init(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct server_id pid,
const char *cache_dir,
+ uid_t dir_owner,
void (*recv_cb)(int msg_type,
struct server_id src,
struct server_id dst,
@@ -214,7 +216,7 @@ int messaging_dgm_init(TALLOC_CTX *mem_ctx,
return ENAMETOOLONG;
}
- ret = messaging_dgm_lockfile_create(ctx, cache_dir, pid.pid,
+ ret = messaging_dgm_lockfile_create(ctx, cache_dir, dir_owner, pid.pid,
&ctx->lockfile_fd, pid.unique_id);
if (ret != 0) {
DEBUG(1, ("%s: messaging_dgm_create_lockfile failed: %s\n",
@@ -234,8 +236,7 @@ int messaging_dgm_init(TALLOC_CTX *mem_ctx,
goto fail_nomem;
}
- ok = directory_create_or_exist_strict(socket_dir, sec_initial_uid(),
- 0700);
+ ok = directory_create_or_exist_strict(socket_dir, dir_owner, 0700);
if (!ok) {
DEBUG(1, ("Could not create socket directory\n"));
TALLOC_FREE(ctx);