diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/rpc_server/common/forward.c | 10 | ||||
-rw-r--r-- | source4/rpc_server/drsuapi/dcesrv_drsuapi.c | 10 |
2 files changed, 14 insertions, 6 deletions
diff --git a/source4/rpc_server/common/forward.c b/source4/rpc_server/common/forward.c index 51e7507d18..c983ac361e 100644 --- a/source4/rpc_server/common/forward.c +++ b/source4/rpc_server/common/forward.c @@ -57,13 +57,14 @@ static void dcesrv_irpc_forward_callback(struct tevent_req *subreq) -/* - forward a RPC call using IRPC to another task +/** + * Forward a RPC call using IRPC to another task */ void dcesrv_irpc_forward_rpc_call(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r, uint32_t callid, const struct ndr_interface_table *ndr_table, - const char *dest_task, const char *opname) + const char *dest_task, const char *opname, + uint32_t timeout) { struct dcesrv_forward_state *st; struct dcerpc_binding_handle *binding_handle; @@ -96,6 +97,9 @@ void dcesrv_irpc_forward_rpc_call(struct dcesrv_call_state *dce_call, TALLOC_CTX return; } + /* reset timeout for the handle */ + dcerpc_binding_handle_set_timeout(binding_handle, timeout); + /* forward the call */ subreq = dcerpc_binding_handle_call_send(st, dce_call->event_ctx, binding_handle, diff --git a/source4/rpc_server/drsuapi/dcesrv_drsuapi.c b/source4/rpc_server/drsuapi/dcesrv_drsuapi.c index 95113dd18d..4a6c37005c 100644 --- a/source4/rpc_server/drsuapi/dcesrv_drsuapi.c +++ b/source4/rpc_server/drsuapi/dcesrv_drsuapi.c @@ -29,6 +29,7 @@ #include "libcli/security/security.h" #include "auth/auth.h" #include "param/param.h" +#include "lib/messaging/irpc.h" #define DRSUAPI_UNSUPPORTED(fname) do { \ DEBUG(1,(__location__ ": Unsupported DRS call %s\n", #fname)); \ @@ -273,7 +274,8 @@ static WERROR dcesrv_drsuapi_DsReplicaSync(struct dcesrv_call_state *dce_call, T dcesrv_irpc_forward_rpc_call(dce_call, mem_ctx, r, NDR_DRSUAPI_DSREPLICASYNC, &ndr_table_drsuapi, - "dreplsrv", "DsReplicaSync"); + "dreplsrv", "DsReplicaSync", + IRPC_CALL_TIMEOUT); return WERR_OK; } @@ -751,7 +753,8 @@ static WERROR dcesrv_drsuapi_DsExecuteKCC(struct dcesrv_call_state *dce_call, TA } dcesrv_irpc_forward_rpc_call(dce_call, mem_ctx, r, NDR_DRSUAPI_DSEXECUTEKCC, - &ndr_table_drsuapi, "kccsrv", "DsExecuteKCC"); + &ndr_table_drsuapi, "kccsrv", "DsExecuteKCC", + IRPC_CALL_TIMEOUT); return WERR_OK; } @@ -775,7 +778,8 @@ static WERROR dcesrv_drsuapi_DsReplicaGetInfo(struct dcesrv_call_state *dce_call } dcesrv_irpc_forward_rpc_call(dce_call, mem_ctx, r, NDR_DRSUAPI_DSREPLICAGETINFO, - &ndr_table_drsuapi, "kccsrv", "DsReplicaGetInfo"); + &ndr_table_drsuapi, "kccsrv", "DsReplicaGetInfo", + IRPC_CALL_TIMEOUT); return WERR_OK; } |