struct drsuapi_DsExecuteKCC *r)
{
WERROR status;
+ uint32_t timeout;
status = drs_security_level_check(dce_call, "DsExecuteKCC", SECURITY_DOMAIN_CONTROLLER, NULL);
if (!W_ERROR_IS_OK(status)) {
if (r->in.req->ctr1.taskID != 0) {
return WERR_INVALID_PARAM;
}
+ if (r->in.req->ctr1.flags & DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION) {
+ timeout = IRPC_CALL_TIMEOUT;
+ } else {
+ /*
+ * use Infinite time for timeout in case
+ * the caller made a sync call
+ */
+ timeout = IRPC_CALL_TIMEOUT_INF;
+ }
+
dcesrv_irpc_forward_rpc_call(dce_call, mem_ctx, r, NDR_DRSUAPI_DSEXECUTEKCC,
&ndr_table_drsuapi, "kccsrv", "DsExecuteKCC",
- IRPC_CALL_TIMEOUT);
+ timeout);
+ DEBUG(0, ("Forwarded the call to execute the KCC\n"));
return WERR_OK;
}