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>
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;
/* 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;
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);