messages_dgm: Only pass "unique" to messaging_dgm_init
authorVolker Lendecke <vl@samba.org>
Sat, 4 Oct 2014 08:40:24 +0000 (10:40 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 13 Feb 2015 22:32:06 +0000 (23:32 +0100)
We have only one context per pid, so messaging_dgm_init can do getpid()
itself.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/lib/messages.c
source3/lib/messages_dgm.c
source3/lib/messages_dgm.h

index 0e5358349dc7a580194d06970b1355bbc230e85e..f14d14961cec26183e89ec0cbf72f5c2d52db41f 100644 (file)
@@ -307,7 +307,7 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
 
        sec_init();
 
-       ret = messaging_dgm_init(ctx->event_ctx, ctx->id,
+       ret = messaging_dgm_init(ctx->event_ctx, ctx->id.unique_id,
                                 lp_cache_directory(), sec_initial_uid(),
                                 messaging_recv_cb, ctx);
 
@@ -368,7 +368,7 @@ NTSTATUS messaging_reinit(struct messaging_context *msg_ctx)
 
        msg_ctx->id = procid_self();
 
-       ret = messaging_dgm_init(msg_ctx->event_ctx, msg_ctx->id,
+       ret = messaging_dgm_init(msg_ctx->event_ctx, msg_ctx->id.unique_id,
                                 lp_cache_directory(), sec_initial_uid(),
                                 messaging_recv_cb, msg_ctx);
        if (ret != 0) {
index ae35282b4afd4374287a4bee6b945dad985af41c..8f5ac4dc37ab622012b70e6225a598ca33ec38d3 100644 (file)
@@ -176,7 +176,7 @@ static int messaging_dgm_lockfile_remove(const char *cache_dir, pid_t pid)
 }
 
 int messaging_dgm_init(struct tevent_context *ev,
-                      struct server_id pid,
+                      uint64_t unique,
                       const char *cache_dir,
                       uid_t dir_owner,
                       void (*recv_cb)(const uint8_t *msg,
@@ -203,7 +203,7 @@ int messaging_dgm_init(struct tevent_context *ev,
        if (ctx == NULL) {
                goto fail_nomem;
        }
-       ctx->pid = pid.pid;
+       ctx->pid = getpid();
        ctx->recv_cb = recv_cb;
        ctx->recv_cb_private_data = recv_cb_private_data;
 
@@ -220,14 +220,14 @@ int messaging_dgm_init(struct tevent_context *ev,
        socket_address = (struct sockaddr_un) { .sun_family = AF_UNIX };
        sockname_len = snprintf(socket_address.sun_path,
                                sizeof(socket_address.sun_path),
-                               "%s/%u", socket_dir.buf, (unsigned)pid.pid);
+                               "%s/%u", socket_dir.buf, (unsigned)ctx->pid);
        if (sockname_len >= sizeof(socket_address.sun_path)) {
                TALLOC_FREE(ctx);
                return ENAMETOOLONG;
        }
 
-       ret = messaging_dgm_lockfile_create(cache_dir, dir_owner, pid.pid,
-                                           &ctx->lockfile_fd, pid.unique_id);
+       ret = messaging_dgm_lockfile_create(cache_dir, dir_owner, ctx->pid,
+                                           &ctx->lockfile_fd, unique);
        if (ret != 0) {
                DEBUG(1, ("%s: messaging_dgm_create_lockfile failed: %s\n",
                          __func__, strerror(ret)));
index 00ff56f30c3f7c04852e1d1d67f19ac76b53bc36..9d01976439bfb5dc6485a752ca2a841e81830861 100644 (file)
@@ -21,7 +21,7 @@
 #define _MESSAGES_DGM_H_
 
 int messaging_dgm_init(struct tevent_context *ev,
-                      struct server_id pid,
+                      uint64_t unique,
                       const char *cache_dir,
                       uid_t dir_owner,
                       void (*recv_cb)(const uint8_t *msg,