summaryrefslogtreecommitdiff
path: root/source4/lib/messaging/messaging.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/messaging/messaging.c')
-rw-r--r--source4/lib/messaging/messaging.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c
index ae3f908060..c33db825fc 100644
--- a/source4/lib/messaging/messaging.c
+++ b/source4/lib/messaging/messaging.c
@@ -776,6 +776,7 @@ static void irpc_handler_request(struct messaging_context *msg_ctx,
/* make the call */
m->private_data= i->private_data;
m->defer_reply = false;
+ m->no_reply = false;
m->msg_ctx = msg_ctx;
m->irpc = i;
m->data = r;
@@ -783,6 +784,12 @@ static void irpc_handler_request(struct messaging_context *msg_ctx,
m->header.status = i->fn(m, r);
+ if (m->no_reply) {
+ /* the server function won't ever be replying to this request */
+ talloc_free(m);
+ return;
+ }
+
if (m->defer_reply) {
/* the server function has asked to defer the reply to later */
talloc_steal(msg_ctx, m);