diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/idl/spoolss.idl | 26 | ||||
-rw-r--r-- | source4/torture/rpc/spoolss.c | 19 |
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; } |