messaging: Avoid a default tevent_fd
authorVolker Lendecke <vl@samba.org>
Fri, 30 Sep 2016 13:42:40 +0000 (06:42 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 4 Oct 2016 22:06:23 +0000 (00:06 +0200)
Instead, rely on messaging_dgm_ref to always request a tevent_handle.

Signed-off-by: Volker Lendecke <vl@samba.org>
Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/lib/messages_dgm.c
source3/lib/messages_dgm_ref.c

index 6cfaf5cd9c6c9a06365aa36fc68c213cc496b4be..7991d424ca74c51999baa3c85122e90449b2ebed 100644 (file)
@@ -75,7 +75,6 @@ struct messaging_dgm_context {
        int lockfile_fd;
 
        int sock;
-       struct tevent_fd *read_fde;
        struct messaging_dgm_in_msg *in_msgs;
 
        void (*recv_cb)(struct tevent_context *ev,
@@ -911,12 +910,6 @@ int messaging_dgm_init(struct tevent_context *ev,
                return ret;
        }
 
-       ctx->read_fde = tevent_add_fd(ctx->ev, ctx, ctx->sock, TEVENT_FD_READ,
-                                     messaging_dgm_read_handler, ctx);
-       if (ctx->read_fde == NULL) {
-               goto fail_nomem;
-       }
-
        talloc_set_destructor(ctx, messaging_dgm_context_destructor);
 
        ctx->have_dgm_context = &have_dgm_context;
@@ -946,7 +939,6 @@ static int messaging_dgm_context_destructor(struct messaging_dgm_context *c)
                TALLOC_FREE(c->in_msgs);
        }
 
-       TALLOC_FREE(c->read_fde);
        close(c->sock);
 
        if (getpid() == c->pid) {
index f582750d5f25b1b9962e7cb1e02749c40e86ed4d..a81e25f377c78fe7c9a994f55d9e3a7a405d725a 100644 (file)
@@ -96,13 +96,14 @@ void *messaging_dgm_ref(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
                        return NULL;
                }
 
-               result->tevent_handle = messaging_dgm_register_tevent_context(
-                       result, ev);
-               if (result->tevent_handle == NULL) {
-                       TALLOC_FREE(result);
-                       *err = ENOMEM;
-                       return NULL;
-               }
+       }
+
+       result->tevent_handle = messaging_dgm_register_tevent_context(
+               result, ev);
+       if (result->tevent_handle == NULL) {
+               TALLOC_FREE(result);
+               *err = ENOMEM;
+               return NULL;
        }
 
        DBG_DEBUG("unique = %"PRIu64"\n", *unique);