svn commit: samba r24922 - in branches/4.0-spoolsstest: .
source/rpc_server/spoolss source/torture/rpc
jelmer at samba.org
jelmer at samba.org
Mon Sep 3 12:37:40 GMT 2007
Author: jelmer
Date: 2007-09-03 12:37:38 +0000 (Mon, 03 Sep 2007)
New Revision: 24922
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24922
Log:
Add generic tests for ReplyOpenPrinter() and ReplyClosePrinter().
Modified:
branches/4.0-spoolsstest/
branches/4.0-spoolsstest/source/rpc_server/spoolss/dcesrv_spoolss.c
branches/4.0-spoolsstest/source/torture/rpc/spoolss.c
Changeset:
Property changes on: branches/4.0-spoolsstest
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...
Modified: branches/4.0-spoolsstest/source/rpc_server/spoolss/dcesrv_spoolss.c
===================================================================
--- branches/4.0-spoolsstest/source/rpc_server/spoolss/dcesrv_spoolss.c 2007-09-03 12:36:47 UTC (rev 24921)
+++ branches/4.0-spoolsstest/source/rpc_server/spoolss/dcesrv_spoolss.c 2007-09-03 12:37:38 UTC (rev 24922)
@@ -1070,7 +1070,13 @@
static WERROR dcesrv_spoolss_ReplyClosePrinter(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct spoolss_ReplyClosePrinter *r)
{
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
+ struct dcesrv_handle *handle;
+
+ DCESRV_PULL_HANDLE_WERR(handle, r->in.handle, SPOOLSS_NOTIFY);
+
+ talloc_free(handle);
+
+ return WERR_OK;
}
Modified: branches/4.0-spoolsstest/source/torture/rpc/spoolss.c
===================================================================
--- branches/4.0-spoolsstest/source/torture/rpc/spoolss.c 2007-09-03 12:36:47 UTC (rev 24921)
+++ branches/4.0-spoolsstest/source/torture/rpc/spoolss.c 2007-09-03 12:37:38 UTC (rev 24922)
@@ -2072,6 +2072,41 @@
return ret;
}
+/** Test that makes sure that calling ReplyOpenPrinter()
+ * on Samba 4 will cause an irpc broadcast call.
+ */
+static bool test_ReplyOpenPrinter(struct torture_context *tctx,
+ struct dcerpc_pipe *pipe)
+{
+ struct spoolss_ReplyOpenPrinter r;
+ struct spoolss_ReplyClosePrinter s;
+ struct policy_handle h;
+
+ r.in.server_name = "earth";
+ r.in.printer_local = 2;
+ r.in.type = REG_DWORD;
+ r.in.unknown1 = 0;
+ r.in.unknown2 = 0;
+ r.out.handle = &h;
+
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_spoolss_ReplyOpenPrinter(pipe, tctx, &r),
+ "spoolss_ReplyOpenPrinter call failed");
+
+ torture_assert_werr_ok(tctx, r.out.result, "error return code");
+
+ s.in.handle = &h;
+ s.out.handle = &h;
+
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_spoolss_ReplyClosePrinter(pipe, tctx, &s),
+ "spoolss_ReplyClosePrinter call failed");
+
+ torture_assert_werr_ok(tctx, r.out.result, "error return code");
+
+ return true;
+}
+
BOOL torture_rpc_spoolss(struct torture_context *torture)
{
NTSTATUS status;
@@ -2133,6 +2168,8 @@
ret &= test_EnumPrinterDrivers_old(p, mem_ctx);
+ ret &= test_ReplyOpenPrinter(torture, p);
+
talloc_free(mem_ctx);
return ret;
More information about the samba-cvs
mailing list