added netr_GetDcName() - quite a useful call
authorAndrew Tridgell <tridge@samba.org>
Tue, 2 Dec 2003 10:08:26 +0000 (10:08 +0000)
committerAndrew Tridgell <tridge@samba.org>
Tue, 2 Dec 2003 10:08:26 +0000 (10:08 +0000)
(This used to be commit 63f46b223e16a3495b4a4a48c6489f1f0d7d84c4)

source4/librpc/idl/netlogon.idl
source4/torture/rpc/netlogon.c

index 16f699129e11eb6949e0490702748ee990902245..2c18edac30b88765927a1e27bd2824659b0cb867 100644 (file)
@@ -652,16 +652,17 @@ interface netlogon
                [in,out]  netr_UAS_INFO_0 recordid
                );
 
-#if 0
 
        /*****************/
        /* Function 0x0B */
 
        NTSTATUS netr_GetDcName(
-               [in] unistr logon_server,
-               [in] unistr *domainname,
-               [out]unistr *dcname,
-               };
+               [in]  unistr logon_server,
+               [in]  unistr *domainname,
+               [out] unistr *dcname
+               );
+
+#if 0
 
        typedef struct {
                uint32 flags;
index 89f1a0132bd0ffd4892fc83aa436fa165fc303c8..a38990bdc1a1cc95b0d1a0bb5395876cd2c26688 100644 (file)
@@ -428,6 +428,28 @@ static BOOL test_AccountSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        return ret;
 }
 
+/*
+  try a netlogon GetDcName
+*/
+static BOOL test_GetDcName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+{
+       NTSTATUS status;
+       struct netr_GetDcName r;
+
+       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.domainname = lp_workgroup();
+
+       printf("Testing GetDcName\n");
+
+       status = dcerpc_netr_GetDcName(p, mem_ctx, &r);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("GetDcName - %s\n", nt_errstr(status));
+               return False;
+       }
+
+       return True;
+}
+
 
 BOOL torture_rpc_netlogon(int dummy)
 {
@@ -448,11 +470,6 @@ BOOL torture_rpc_netlogon(int dummy)
        
        p->flags |= DCERPC_DEBUG_PRINT_BOTH;
 
-       if (!test_AccountSync(p, mem_ctx)) {
-               ret = False;
-       }
-       return ret;
-
        if (!test_LogonUasLogon(p, mem_ctx)) {
                ret = False;
        }
@@ -481,6 +498,14 @@ BOOL torture_rpc_netlogon(int dummy)
                ret = False;
        }
 
+       if (!test_AccountSync(p, mem_ctx)) {
+               ret = False;
+       }
+
+       if (!test_GetDcName(p, mem_ctx)) {
+               ret = False;
+       }
+
         torture_rpc_close(p);
 
        return ret;