From 617b4395faef632104afa44d335f802c874ec168 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 22 Jul 2016 11:17:24 -0700 Subject: [PATCH] s4: messaging: Remove bool auto_remove parameter from imessaging_init(). With modern messaging this doesn't do anything (it's an empty destructor). Clean up so we can add a proper destructor in future. Signed-off-by: Jeremy Allison --- source3/auth/auth_samba4.c | 4 ++-- source3/winbindd/winbindd.c | 3 +-- source4/lib/messaging/messaging.c | 15 ++------------- source4/lib/messaging/messaging.h | 3 +-- source4/lib/messaging/pymessaging.c | 2 +- source4/lib/messaging/tests/irpc.c | 4 ++-- source4/lib/messaging/tests/messaging.c | 4 ++-- source4/smbd/server.c | 2 +- source4/smbd/service_stream.c | 2 +- source4/smbd/service_task.c | 2 +- 10 files changed, 14 insertions(+), 27 deletions(-) diff --git a/source3/auth/auth_samba4.c b/source3/auth/auth_samba4.c index 8ea05c6..a0d6afd3 100644 --- a/source3/auth/auth_samba4.c +++ b/source3/auth/auth_samba4.c @@ -231,7 +231,7 @@ static NTSTATUS prepare_gensec(const struct auth_context *auth_context, msg_ctx = imessaging_init(frame, lp_ctx, *server_id, - event_ctx, true); + event_ctx); if (msg_ctx == NULL) { DEBUG(1, ("imessaging_init failed\n")); TALLOC_FREE(frame); @@ -322,7 +322,7 @@ static NTSTATUS make_auth4_context_s4(const struct auth_context *auth_context, msg_ctx = imessaging_init(frame, lp_ctx, *server_id, - event_ctx, true); + event_ctx); if (msg_ctx == NULL) { DEBUG(1, ("imessaging_init failed\n")); TALLOC_FREE(frame); diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c index 002ba3f..f79dc47 100644 --- a/source3/winbindd/winbindd.c +++ b/source3/winbindd/winbindd.c @@ -122,8 +122,7 @@ struct imessaging_context *winbind_imessaging_context(void) * Note we MUST use the NULL context here, not the autofree context, * to avoid side effects in forked children exiting. */ - msg = imessaging_init(NULL, lp_ctx, myself, winbind_event_context(), - false); + msg = imessaging_init(NULL, lp_ctx, myself, winbind_event_context()); talloc_unlink(NULL, lp_ctx); if (msg == NULL) { diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c index 0fc180b..486d602 100644 --- a/source4/lib/messaging/messaging.c +++ b/source4/lib/messaging/messaging.c @@ -280,7 +280,6 @@ NTSTATUS imessaging_send_ptr(struct imessaging_context *msg, struct server_id se /* - remove our messaging socket and database entry */ int imessaging_cleanup(struct imessaging_context *msg) { @@ -296,17 +295,11 @@ static void imessaging_dgm_recv(const uint8_t *buf, size_t buf_len, /* create the listening socket and setup the dispatcher - - use auto_remove=true when you want a destructor to remove the - associated messaging socket and database entry on talloc free. Don't - use this in processes that may fork and a child may talloc free this - memory */ struct imessaging_context *imessaging_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, struct server_id server_id, - struct tevent_context *ev, - bool auto_remove) + struct tevent_context *ev) { struct imessaging_context *msg; bool ok; @@ -376,10 +369,6 @@ struct imessaging_context *imessaging_init(TALLOC_CTX *mem_ctx, goto fail; } - if (auto_remove) { - talloc_set_destructor(msg, imessaging_cleanup); - } - imessaging_register(msg, NULL, MSG_PING, ping_message); imessaging_register(msg, NULL, MSG_REQ_POOL_USAGE, pool_message); imessaging_register(msg, NULL, MSG_IRPC, irpc_handler); @@ -452,7 +441,7 @@ struct imessaging_context *imessaging_client_init(TALLOC_CTX *mem_ctx, /* This is because we are not in the s3 serverid database */ id.unique_id = SERVERID_UNIQUE_ID_NOT_TO_VERIFY; - return imessaging_init(mem_ctx, lp_ctx, id, ev, true); + return imessaging_init(mem_ctx, lp_ctx, id, ev); } /* a list of registered irpc server functions diff --git a/source4/lib/messaging/messaging.h b/source4/lib/messaging/messaging.h index c3477f2..2efab94 100644 --- a/source4/lib/messaging/messaging.h +++ b/source4/lib/messaging/messaging.h @@ -43,8 +43,7 @@ NTSTATUS imessaging_register_tmp(struct imessaging_context *msg, void *private_d struct imessaging_context *imessaging_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, struct server_id server_id, - struct tevent_context *ev, - bool auto_remove); + struct tevent_context *ev); int imessaging_cleanup(struct imessaging_context *msg); struct imessaging_context *imessaging_client_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, diff --git a/source4/lib/messaging/pymessaging.c b/source4/lib/messaging/pymessaging.c index cef0703..f62354b 100644 --- a/source4/lib/messaging/pymessaging.c +++ b/source4/lib/messaging/pymessaging.c @@ -115,7 +115,7 @@ static PyObject *py_imessaging_connect(PyTypeObject *self, PyObject *args, PyObj ret->msg_ctx = imessaging_init(ret->mem_ctx, lp_ctx, server_id, - ev, true); + ev); } else { ret->msg_ctx = imessaging_client_init(ret->mem_ctx, lp_ctx, diff --git a/source4/lib/messaging/tests/irpc.c b/source4/lib/messaging/tests/irpc.c index 486420b..466b47f 100644 --- a/source4/lib/messaging/tests/irpc.c +++ b/source4/lib/messaging/tests/irpc.c @@ -261,14 +261,14 @@ static bool irpc_setup(struct torture_context *tctx, void **_data) imessaging_init(tctx, tctx->lp_ctx, cluster_id(0, MSG_ID1), - data->ev, true), + data->ev), "Failed to init first messaging context"); torture_assert(tctx, data->msg_ctx2 = imessaging_init(tctx, tctx->lp_ctx, cluster_id(0, MSG_ID2), - data->ev, true), + data->ev), "Failed to init second messaging context"); /* register the server side function */ diff --git a/source4/lib/messaging/tests/messaging.c b/source4/lib/messaging/tests/messaging.c index 2759703..51195a1 100644 --- a/source4/lib/messaging/tests/messaging.c +++ b/source4/lib/messaging/tests/messaging.c @@ -73,7 +73,7 @@ static bool test_ping_speed(struct torture_context *tctx) msg_server_ctx = imessaging_init(tctx, tctx->lp_ctx, cluster_id(0, 1), - ev, true); + ev); torture_assert(tctx, msg_server_ctx != NULL, "Failed to init ping messaging context"); @@ -83,7 +83,7 @@ static bool test_ping_speed(struct torture_context *tctx) msg_client_ctx = imessaging_init(tctx, tctx->lp_ctx, cluster_id(0, 2), - ev, true); + ev); torture_assert(tctx, msg_client_ctx != NULL, "msg_client_ctx imessaging_init() failed"); diff --git a/source4/smbd/server.c b/source4/smbd/server.c index 7dc7635..2399f4f 100644 --- a/source4/smbd/server.c +++ b/source4/smbd/server.c @@ -223,7 +223,7 @@ static NTSTATUS setup_parent_messaging(struct tevent_context *event_ctx, msg = imessaging_init(talloc_autofree_context(), lp_ctx, - cluster_id(0, SAMBA_PARENT_TASKID), event_ctx, false); + cluster_id(0, SAMBA_PARENT_TASKID), event_ctx); NT_STATUS_HAVE_NO_MEMORY(msg); status = irpc_add_name(msg, "samba"); diff --git a/source4/smbd/service_stream.c b/source4/smbd/service_stream.c index 9aca501..f0a379a 100644 --- a/source4/smbd/service_stream.c +++ b/source4/smbd/service_stream.c @@ -194,7 +194,7 @@ static void stream_new_connection(struct tevent_context *ev, /* setup to receive internal messages on this connection */ srv_conn->msg_ctx = imessaging_init(srv_conn, lp_ctx, - srv_conn->server_id, ev, false); + srv_conn->server_id, ev); if (!srv_conn->msg_ctx) { stream_terminate_connection(srv_conn, "imessaging_init() failed"); return; diff --git a/source4/smbd/service_task.c b/source4/smbd/service_task.c index 7422f2c..34f73d9 100644 --- a/source4/smbd/service_task.c +++ b/source4/smbd/service_task.c @@ -85,7 +85,7 @@ static void task_server_callback(struct tevent_context *event_ctx, task->msg_ctx = imessaging_init(task, task->lp_ctx, task->server_id, - task->event_ctx, false); + task->event_ctx); if (!task->msg_ctx) { task_server_terminate(task, "imessaging_init() failed", true); return; -- 2.8.0.rc3.226.g39d4020