diff options
author | Volker Lendecke <vl@samba.org> | 2014-07-17 11:47:32 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2014-08-11 23:57:13 +0200 |
commit | bab01d1a89c51a1c9ff1bc80bcabf840d5f0308f (patch) | |
tree | 6933c3afe84b897b6623e3b1773c8e0994069ac6 | |
parent | f408a428962e6b7ccbbe580ac853cbba283b3c8f (diff) | |
download | samba-bab01d1a89c51a1c9ff1bc80bcabf840d5f0308f.tar.gz samba-bab01d1a89c51a1c9ff1bc80bcabf840d5f0308f.tar.xz samba-bab01d1a89c51a1c9ff1bc80bcabf840d5f0308f.zip |
messaging3: Pass dir_owner to messaging_dgm_init()
-rw-r--r-- | source3/include/messages.h | 1 | ||||
-rw-r--r-- | source3/lib/messages.c | 4 | ||||
-rw-r--r-- | source3/lib/messages_dgm.c | 11 |
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); |