diff options
Diffstat (limited to 'source4/lib/messaging/messaging.c')
-rw-r--r-- | source4/lib/messaging/messaging.c | 7 |
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); |