summaryrefslogtreecommitdiff
path: root/source4/smbd
diff options
context:
space:
mode:
Diffstat (limited to 'source4/smbd')
-rw-r--r--source4/smbd/service_task.c11
-rw-r--r--source4/smbd/wscript_build2
2 files changed, 6 insertions, 7 deletions
diff --git a/source4/smbd/service_task.c b/source4/smbd/service_task.c
index f9d15b8bc3..8edd49e259 100644
--- a/source4/smbd/service_task.c
+++ b/source4/smbd/service_task.c
@@ -23,7 +23,7 @@
#include "process_model.h"
#include "lib/messaging/irpc.h"
#include "param/param.h"
-#include "librpc/gen_ndr/ndr_irpc.h"
+#include "librpc/gen_ndr/ndr_irpc_c.h"
/*
terminate a task service
@@ -35,15 +35,14 @@ void task_server_terminate(struct task_server *task, const char *reason, bool fa
DEBUG(0,("task_server_terminate: [%s]\n", reason));
if (fatal) {
+ struct dcerpc_binding_handle *irpc_handle;
struct samba_terminate r;
- struct server_id *sid;
- sid = irpc_servers_byname(task->msg_ctx, task, "samba");
+ irpc_handle = irpc_binding_handle_by_name(task, task->msg_ctx,
+ "samba", &ndr_table_irpc);
r.in.reason = reason;
- IRPC_CALL(task->msg_ctx, sid[0],
- irpc, SAMBA_TERMINATE,
- &r, NULL);
+ dcerpc_samba_terminate_r(irpc_handle, task, &r);
}
model_ops->terminate(event_ctx, task->lp_ctx, reason);
diff --git a/source4/smbd/wscript_build b/source4/smbd/wscript_build
index 217ef95128..aa72694e3c 100644
--- a/source4/smbd/wscript_build
+++ b/source4/smbd/wscript_build
@@ -3,7 +3,7 @@
bld.SAMBA_SUBSYSTEM('service',
source='service.c service_stream.c service_named_pipe.c service_task.c',
autoproto='service_proto.h',
- deps='tevent MESSAGING samba_socket NDR_NAMED_PIPE_AUTH NAMED_PIPE_AUTH_TSTREAM HEIMDAL_GSSAPI CREDENTIALS LIBTSOCKET LIBSAMBA_TSOCKET'
+ deps='tevent MESSAGING samba_socket RPC_NDR_IRPC NDR_NAMED_PIPE_AUTH NAMED_PIPE_AUTH_TSTREAM HEIMDAL_GSSAPI CREDENTIALS LIBTSOCKET LIBSAMBA_TSOCKET'
)