/****************/
/* Function 0x26 */
- WERROR netr_DSRGETDCSITECOVERAGEW();
+
+ typedef struct {
+ uint32 num_sites;
+ [size_is(num_sites)] [unique] lsa_String *sites;
+ } DcSitesCtr;
+
+ WERROR netr_DsrGetDcSiteCoverageW(
+ [in] [string,charset(UTF16)] uint16 *server_name,
+ [out] DcSitesCtr *ctr
+ );
/****************/
/* Function 0x27 */
/*
- netr_DSRGETDCSITECOVERAGEW
+ netr_DsrGetDcSiteCoverageW
*/
-static WERROR dcesrv_netr_DSRGETDCSITECOVERAGEW(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct netr_DSRGETDCSITECOVERAGEW *r)
+static WERROR dcesrv_netr_DsrGetDcSiteCoverageW(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct netr_DsrGetDcSiteCoverageW *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
}
}
-
return ret;
}
return ret;
}
+static BOOL test_netr_DsrGetDcSiteCoverageW(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+{
+ NTSTATUS status;
+ struct netr_DsrGetDcSiteCoverageW r;
+ BOOL ret = True;
+
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
+ printf("skipping DsrGetDcSiteCoverageW test against Samba4\n");
+ return True;
+ }
+
+ r.in.server_name = "";
+ printf("Testing netr_DsrGetDcSiteCoverageW\n");
+
+ status = dcerpc_netr_DsrGetDcSiteCoverageW(p, mem_ctx, &r);
+ if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
+ printf("netr_DsrGetDcSiteCoverageW - %s/%s\n",
+ nt_errstr(status), win_errstr(r.out.result));
+ ret = False;
+ }
+ return ret;
+}
+
+
static BOOL test_GetDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
{
NTSTATUS status;
ret &= test_netr_DsRGetDCName(p, mem_ctx);
ret &= test_netr_DsRGetDCNameEx(p, mem_ctx);
ret &= test_netr_DsRGetDCNameEx2(p, mem_ctx);
+ ret &= test_netr_DsrGetDcSiteCoverageW(p, mem_ctx);
talloc_free(mem_ctx);