diff options
author | Kamen Mazdrashki <kamenim@samba.org> | 2010-09-15 16:41:47 +0300 |
---|---|---|
committer | Kamen Mazdrashki <kamenim@samba.org> | 2010-09-16 00:15:38 +0300 |
commit | ee169d73479a5e8672d56617f2ad9cfac254f8bf (patch) | |
tree | db3b4c120825e2a1f09713df037d7202874f7ee9 | |
parent | 839ed051fc4fe62b9b2ce008898b538509769f88 (diff) | |
download | samba-ee169d73479a5e8672d56617f2ad9cfac254f8bf.tar.gz samba-ee169d73479a5e8672d56617f2ad9cfac254f8bf.tar.bz2 samba-ee169d73479a5e8672d56617f2ad9cfac254f8bf.zip |
s4-irpc: Add 'timeout' param for dcesrv_irpc_forward_rpc_call() call
It is to be used when caller wants to explicitly
specify the timeout for the call
-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; } |