r5611: Add EnumPrinterDataEx-test (for now just for PrinterDriverData, we need
authorGünther Deschner <gd@samba.org>
Wed, 2 Mar 2005 00:15:06 +0000 (00:15 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:10:56 +0000 (13:10 -0500)
to enumerate (recursively!) over all keys with EnumPrinterKey later on.

Guenther
(This used to be commit 46ae4010f2293fb1933aacd2da582fcb1c0a5e1d)

source4/torture/rpc/spoolss.c

index 94ced04a98b2f62351350394de05c51313744e98..7a9d8c3635ce3e042415a6b624fb417ae670186f 100644 (file)
@@ -571,7 +571,7 @@ static BOOL test_GetPrinterDataEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 static BOOL test_EnumPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                         struct policy_handle *handle)
+                                struct policy_handle *handle)
 {
        NTSTATUS status;
        struct spoolss_EnumPrinterData r;
@@ -618,6 +618,38 @@ static BOOL test_EnumPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        return True;
 }
 
+static BOOL test_EnumPrinterDataEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                                  struct policy_handle *handle)
+{
+       NTSTATUS status;
+       struct spoolss_EnumPrinterDataEx r;
+
+       r.in.handle = handle;
+       r.in.key_name = "PrinterDriverData";
+       r.in.buf_size = 0;
+
+       printf("Testing EnumPrinterDataEx\n");
+
+       status = dcerpc_spoolss_EnumPrinterDataEx(p, mem_ctx, &r);
+
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("EnumPrinterDataEx failed - %s\n", nt_errstr(status));
+               return False;
+       }
+
+       r.in.buf_size = r.out.buf_size;
+
+       status = dcerpc_spoolss_EnumPrinterDataEx(p, mem_ctx, &r);
+
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("EnumPrinterDataEx failed - %s\n", nt_errstr(status));
+               return False;
+       }
+
+       return True;
+}
+
+
 static BOOL test_DeletePrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                   struct policy_handle *handle, 
                                   const char *value_name)
@@ -907,6 +939,10 @@ static BOOL test_OpenPrinterEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                ret = False;
        }
 
+       if (!test_EnumPrinterDataEx(p, mem_ctx, &handle)) {
+               ret = False;
+       }
+
        if (!test_EnumJobs(p, mem_ctx, &handle)) {
                ret = False;
        }