From cf76cf02995f6050fc71066366810b355d26d4b9 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Fri, 10 Sep 2010 00:16:30 +0200 Subject: s4-smbtorture: add spoolss_OpenPrinter with unc and printername in RPC-SPOOLSS-PRINTSERVER. Guenther --- source4/torture/rpc/spoolss.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'source4/torture/rpc') diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c index a444c84646..25c410a407 100644 --- a/source4/torture/rpc/spoolss.c +++ b/source4/torture/rpc/spoolss.c @@ -5645,7 +5645,8 @@ static bool test_OpenPrinter_badname_list(struct torture_context *tctx, static bool test_OpenPrinter(struct torture_context *tctx, struct dcerpc_pipe *p, const char *name, - const char *environment) + const char *environment, + bool open_only) { NTSTATUS status; struct spoolss_OpenPrinter r; @@ -5653,7 +5654,7 @@ static bool test_OpenPrinter(struct torture_context *tctx, bool ret = true; struct dcerpc_binding_handle *b = p->binding_handle; - r.in.printername = talloc_asprintf(tctx, "\\\\%s\\%s", dcerpc_server_name(p), name); + r.in.printername = name; r.in.datatype = NULL; r.in.devmode_ctr.devmode= NULL; r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED; @@ -5667,6 +5668,10 @@ static bool test_OpenPrinter(struct torture_context *tctx, torture_assert_werr_ok(tctx, r.out.result, "OpenPrinter failed"); + if (open_only) { + goto close_printer; + } + if (!test_GetPrinter(tctx, b, &handle, environment)) { ret = false; } @@ -5677,6 +5682,7 @@ static bool test_OpenPrinter(struct torture_context *tctx, } } + close_printer: if (!test_ClosePrinter(tctx, b, &handle)) { ret = false; } @@ -5965,7 +5971,7 @@ static bool test_EnumPrinters_old(struct torture_context *tctx, for (j=0;jenvironment)) { + full_name = talloc_asprintf(tctx, "\\\\%s\\%s", + dcerpc_server_name(p), name); + if (!test_OpenPrinter(tctx, p, name, ctx->environment, true)) { + ret = false; + } + if (!test_OpenPrinter(tctx, p, full_name, ctx->environment, true)) { + ret = false; + } + if (!test_OpenPrinter(tctx, p, name, ctx->environment, false)) { ret = false; } if (!test_OpenPrinterEx(tctx, p, name, ctx->environment)) { -- cgit