summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/librpc/idl/spoolss.idl26
-rw-r--r--source4/torture/rpc/spoolss.c19
2 files changed, 21 insertions, 24 deletions
diff --git a/source4/librpc/idl/spoolss.idl b/source4/librpc/idl/spoolss.idl
index 0ac941190b..9a9495b046 100644
--- a/source4/librpc/idl/spoolss.idl
+++ b/source4/librpc/idl/spoolss.idl
@@ -187,12 +187,21 @@
/******************/
/* Function: 0x01 */
+ typedef struct {
+ uint32 foo;
+ } spoolss_Devmode;
+
+ typedef struct {
+ uint32 size;
+ spoolss_Devmode *devmode;
+ } spoolss_DevmodeContainer;
+
WERROR spoolss_OpenPrinter(
- [in] unistr *server,
- [in] unistr *printer,
- [in] DATA_BLOB *buffer,
+ [in] unistr *printername,
+ [in] unistr *datatype,
+ [in] spoolss_DevmodeContainer devmode_ctr,
[in] uint32 access_mask,
- [out,ref] policy_handle *handle
+ [out,ref] policy_handle *handle
);
/******************/
@@ -736,15 +745,6 @@
);
typedef struct {
- uint32 foo;
- } spoolss_Devmode;
-
- typedef struct {
- uint32 size;
- spoolss_Devmode *devmode;
- } spoolss_DevmodeContainer;
-
- typedef struct {
uint32 size;
unistr *client;
unistr *user;
diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c
index 8e4ea15677..de8da366b7 100644
--- a/source4/torture/rpc/spoolss.c
+++ b/source4/torture/rpc/spoolss.c
@@ -646,18 +646,16 @@ static BOOL test_OpenPrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
NTSTATUS status;
struct spoolss_OpenPrinter r;
struct policy_handle handle;
- DATA_BLOB blob;
BOOL ret = True;
- blob = data_blob(NULL, 0);
+ r.in.printername = talloc_asprintf(mem_ctx, "\\\\%s\\%s", dcerpc_server_name(p), name);
+ r.in.datatype = NULL;
+ r.in.devmode_ctr.size = 0;
+ r.in.devmode_ctr.devmode= NULL;
+ r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+ r.out.handle = &handle;
- r.in.server = talloc_asprintf(mem_ctx, "\\\\%s\\%s", dcerpc_server_name(p), name);
- r.in.printer = NULL;
- r.in.buffer = &blob;
- r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
- r.out.handle = &handle;
-
- printf("\nTesting OpenPrinter(%s)\n", r.in.server);
+ printf("\nTesting OpenPrinter(%s)\n", r.in.printername);
status = dcerpc_spoolss_OpenPrinter(p, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
@@ -667,7 +665,6 @@ static BOOL test_OpenPrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
return True;
}
-
if (!test_GetPrinter(p, mem_ctx, &handle)) {
ret = False;
}
@@ -679,7 +676,7 @@ static BOOL test_OpenPrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
if (!test_ClosePrinter(p, mem_ctx, &handle)) {
ret = False;
}
-
+
return ret;
}