r23240: Fill in netr_DsrGetDcSiteCoverageW.
authorGünther Deschner <gd@samba.org>
Wed, 30 May 2007 10:24:40 +0000 (10:24 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:53:06 +0000 (14:53 -0500)
Guenther

source/librpc/idl/netlogon.idl
source/rpc_server/netlogon/dcerpc_netlogon.c
source/torture/rpc/netlogon.c

index 6f860a8ca48369721b94a56c36e75ce4131dd9c4..b83454908ef5b008ebc9578959372da0f16de372 100644 (file)
@@ -1145,7 +1145,16 @@ interface netlogon
 
        /****************/
        /* 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 */
index 619f678b3fb7ea4e16674ec52fedd993917a1a96..38356f7260a3d33a2319dd7c226a42d7be1c4511 100644 (file)
@@ -1119,10 +1119,10 @@ static WERROR dcesrv_netr_DSRADDRESSTOSITENAMESEXW(struct dcesrv_call_state *dce
 
 
 /* 
-  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);
 }
index 967b615bc36c3788648876a0ab5efe194340ddcd..2c566d38ce0ba17ff3d8be31a983a95c499ed4d5 100644 (file)
@@ -594,7 +594,6 @@ BOOL test_netlogon_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        }
 
-
        return ret;
 }
 
@@ -1318,6 +1317,30 @@ static BOOL test_netr_DsRGetDCNameEx2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx
        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;
@@ -1605,6 +1628,7 @@ BOOL torture_rpc_netlogon(struct torture_context *torture)
        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);