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, 5 insertions, 2 deletions
diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c
index 823058b0cf..70eb2e7680 100644
--- a/source4/lib/messaging/messaging.c
+++ b/source4/lib/messaging/messaging.c
@@ -422,6 +422,7 @@ struct irpc_list {
const struct dcerpc_interface_table *table;
int callnum;
irpc_function_t fn;
+ void *private;
};
@@ -430,7 +431,7 @@ struct irpc_list {
*/
NTSTATUS irpc_register(struct messaging_context *msg_ctx,
const struct dcerpc_interface_table *table,
- int callnum, irpc_function_t fn)
+ int callnum, irpc_function_t fn, void *private)
{
struct irpc_list *irpc;
@@ -449,6 +450,7 @@ NTSTATUS irpc_register(struct messaging_context *msg_ctx,
irpc->table = table;
irpc->callnum = callnum;
irpc->fn = fn;
+ irpc->private = private;
GUID_from_string(irpc->table->uuid, &irpc->uuid);
return NT_STATUS_OK;
@@ -514,7 +516,8 @@ static void irpc_handler_request(struct messaging_context *msg_ctx,
if (!NT_STATUS_IS_OK(status)) goto failed;
/* make the call */
- m.from = src;
+ m.from = src;
+ m.private = i->private;
header->status = i->fn(&m, r);
/* setup the reply */