mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
s4-messaging: add support for no_reply in irpc messages
It can be useful for a irpc message to be one-way, where the client sends a messages and the server does not reply. This will be used for things like a triger message from an auth context to the drepl server to tell it to try a REPL_SECRET on a user in a RODC. Previously we've used raw messaging for messages that have no reply, but that doesn't allow us to use messages described by IDL Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
b9393e4896
commit
f6d85be528
@ -35,6 +35,7 @@ struct irpc_message {
|
||||
struct irpc_header header;
|
||||
struct ndr_pull *ndr;
|
||||
bool defer_reply;
|
||||
bool no_reply;
|
||||
struct messaging_context *msg_ctx;
|
||||
struct irpc_list *irpc;
|
||||
void *data;
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user