struct messaging_context *msg_ctx;
};
-static NTSTATUS _rpc_ep_register(const struct ndr_interface_table *iface,
+static NTSTATUS _rpc_ep_register(struct tevent_context *ev_ctx,
+ struct messaging_context *msg_ctx,
+ const struct ndr_interface_table *iface,
const char *name,
uint16_t port)
{
static bool winreg_init_cb(void *ptr)
{
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_winreg,
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_winreg,
"winreg",
0));
}
static bool srvsvc_init_cb(void *ptr)
{
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_srvsvc,
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_srvsvc,
"srvsvc",
0));
}
static bool lsarpc_init_cb(void *ptr)
{
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_lsarpc,
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_lsarpc,
"lsarpc",
0));
}
static bool samr_init_cb(void *ptr)
{
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_samr,
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_samr,
"samr",
0));
}
static bool netlogon_init_cb(void *ptr)
{
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_netlogon,
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_netlogon,
"netlogon",
0));
}
return false;
}
- status =_rpc_ep_register(&ndr_table_spoolss,
+ status =_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_spoolss,
"spoolss",
0);
if (!NT_STATUS_IS_OK(status)) {
/* initialize the control hooks */
init_service_op_table();
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_svcctl,
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_svcctl,
"svcctl",
0));
}
static bool ntsvcs_init_cb(void *ptr)
{
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_ntsvcs,
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_ntsvcs,
"ntsvcs",
0));
}
talloc_get_type_abort(ptr, struct dcesrv_ep_context);
NTSTATUS status;
- status =_rpc_ep_register(&ndr_table_eventlog,
+ status =_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_eventlog,
"eventlog",
0);
if (!NT_STATUS_IS_OK(status)) {
static bool initshutdown_init_cb(void *ptr)
{
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_initshutdown,
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_initshutdown,
"initshutdown",
0));
}
}
#ifdef DEVELOPER
static bool rpcecho_init_cb(void *ptr) {
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_rpcecho,
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_rpcecho,
"rpcecho",
0));
}
#endif
static bool netdfs_init_cb(void *ptr)
{
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_netdfs,
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_netdfs,
"netdfs",
0));
}
return NT_STATUS_IS_OK(_rpc_ep_unregister(&ndr_table_netdfs));
}
-static bool dssetup_init_cb(void *ptr) {
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_dssetup,
+static bool dssetup_init_cb(void *ptr)
+{
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_dssetup,
"dssetup",
0));
}
return NT_STATUS_IS_OK(_rpc_ep_unregister(&ndr_table_dssetup));
}
-static bool wkssvc_init_cb(void *ptr) {
- return NT_STATUS_IS_OK(_rpc_ep_register(&ndr_table_wkssvc,
+static bool wkssvc_init_cb(void *ptr)
+{
+ struct dcesrv_ep_context *ep_ctx =
+ talloc_get_type_abort(ptr, struct dcesrv_ep_context);
+
+ return NT_STATUS_IS_OK(_rpc_ep_register(ep_ctx->ev_ctx,
+ ep_ctx->msg_ctx,
+ &ndr_table_wkssvc,
"wkssvc",
0));
}