[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Sat Sep 8 02:36:02 UTC 2018
The branch, master has been updated
via b1bf9c5 spoolss-iremotewinspool-tests: Use more recent client OS version
via 2b97074 iremotewinspool-tests: Add client os build number validation test
via 4fc0602 iremotewinspool-tests: Allow modification of OS client version information
via b8279f6 s3-rpcclient: Use spoolss_init_spoolss_UserLevel1 in winspool cmds
via 1da7708 s3-rpc_client: Advertise Windows 7 client info
via a2aa7d6 s3-spoolss: Make spoolss client os_major,os_minor and os_build configurable.
from 70169d4 wafsamba: Fix 'make -j<jobs>'
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit b1bf9c5d850457dce1d5a38bdb800f0280c54d68
Author: Justin Stephenson <jstephen at redhat.com>
Date: Fri Aug 31 15:28:36 2018 -0400
spoolss-iremotewinspool-tests: Use more recent client OS version
Set torture test client info build, major, and minor
version numbers to Windows 7 and Windows Server 2008 R2 values
buildnum: 7007
major: 6
minor: 1
Build number taken from
[MS-RPRN] <168> Section 2.2.3.10.1
Major/Minor numbers taken from
https://docs.microsoft.com/en-us/windows/desktop/sysinfo/operating-system-version
Signed-off-by: Justin Stephenson <jstephen at redhat.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Sat Sep 8 04:35:56 CEST 2018 on sn-devel-144
commit 2b9707413f541231ac8e14f4bfba24f66253c082
Author: Justin Stephenson <jstephen at redhat.com>
Date: Wed Aug 22 13:23:18 2018 -0400
iremotewinspool-tests: Add client os build number validation test
Add test validating the AsyncOpenPrinter result based on the provided
client info build number
Signed-off-by: Justin Stephenson <jstephen at redhat.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 4fc0602d975277287ef5257929dff49d21b05adc
Author: Justin Stephenson <jstephen at redhat.com>
Date: Wed Aug 15 11:10:21 2018 -0400
iremotewinspool-tests: Allow modification of OS client version information
Add test_get_client_info() function to set and, or modify the client OS
version values advertised in the iremotewinspool torture tests.
The OS build numbers are used from the table in:
[MS-RPRN] <168> Section 2.2.3.10.1
Signed-off-by: Justin Stephenson <jstephen at redhat.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit b8279f6525b806d8f91aa8ce016bd528fff917f4
Author: Günther Deschner <gd at samba.org>
Date: Fri Aug 31 18:22:04 2018 +0200
s3-rpcclient: Use spoolss_init_spoolss_UserLevel1 in winspool cmds
Use spoolss initialization function to set client version information for
iremotewinspool printer operations
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 1da770848753c172d0c790911b97dbe9c3ccee06
Author: Justin Stephenson <jstephen at redhat.com>
Date: Fri Aug 31 13:28:58 2018 -0400
s3-rpc_client: Advertise Windows 7 client info
Client printing operations currently fail against Windows
Server 2016 with Access Denied if a client os build number
lower than 6000 is advertised. Increase the default build number,
major, and minor versions to values associated with client
OS versoins Windows 7 and Windows Server 2008 R2.
The build number value specifically needs to be increased to
allow these operations to succeed.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13597
Signed-off-by: Justin Stephenson <jstephen at redhat.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit a2aa7d6d65351a887b438d57ff509aaa05a28251
Author: Günther Deschner <gd at samba.org>
Date: Fri Aug 31 17:36:19 2018 +0200
s3-spoolss: Make spoolss client os_major,os_minor and os_build configurable.
Similar to spoolss server options, make the client advertised OS version
values configurable to allow overriding the defaults provided to the print server.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13597
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
-----------------------------------------------------------------------
Summary of changes:
docs-xml/smbdotconf/printing/spoolssosversion.xml | 39 ++++++
source3/rpc_client/cli_spoolss.c | 29 ++---
source3/rpc_client/init_spoolss.c | 31 +++++
source3/rpc_client/init_spoolss.h | 3 +
source3/rpcclient/cmd_iremotewinspool.c | 16 ++-
source4/torture/rpc/iremotewinspool.c | 151 ++++++++++++++++++++--
source4/torture/rpc/spoolss_access.c | 7 +-
7 files changed, 236 insertions(+), 40 deletions(-)
Changeset truncated at 500 lines:
diff --git a/docs-xml/smbdotconf/printing/spoolssosversion.xml b/docs-xml/smbdotconf/printing/spoolssosversion.xml
index 0ef4489..1b57b69 100644
--- a/docs-xml/smbdotconf/printing/spoolssosversion.xml
+++ b/docs-xml/smbdotconf/printing/spoolssosversion.xml
@@ -39,3 +39,42 @@
<value type="default">2195</value>
<value type="example">7601</value>
</samba:parameter>
+
+<samba:parameter name="spoolss_client: os_major"
+ context="G"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>Windows might require a new os version number. This option allows
+ to modify the build number. The complete default version number is:
+ 6.1.7007 (Windows 7 and Windows Server 2008 R2).
+ </para>
+</description>
+<value type="default">6</value>
+</samba:parameter>
+
+<samba:parameter name="spoolss_client: os_minor"
+ context="G"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>Windows might require a new os version number. This option allows
+ to modify the build number. The complete default version number is:
+ 6.1.7007 (Windows 7 and Windows Server 2008 R2).
+ </para>
+</description>
+<value type="default">1</value>
+</samba:parameter>
+
+<samba:parameter name="spoolss_client: os_build"
+ context="G"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>Windows might require a new os version number. This option allows
+ to modify the build number. The complete default version number is:
+ 6.1.7007 (Windows 7 and Windows Server 2008 R2).
+ </para>
+</description>
+<value type="default">7007</value>
+</samba:parameter>
diff --git a/source3/rpc_client/cli_spoolss.c b/source3/rpc_client/cli_spoolss.c
index 7f6ed8e..36ca806 100644
--- a/source3/rpc_client/cli_spoolss.c
+++ b/source3/rpc_client/cli_spoolss.c
@@ -28,6 +28,7 @@
#include "rpc_client/cli_spoolss.h"
#include "auth/gensec/gensec.h"
#include "auth/credentials/credentials.h"
+#include "rpc_client/init_spoolss.h"
/**********************************************************************
convencience wrapper around rpccli_spoolss_OpenPrinterEx
@@ -49,14 +50,12 @@ WERROR rpccli_spoolss_openprinter_ex(struct rpc_pipe_client *cli,
ZERO_STRUCT(devmode_ctr);
- level1.size = 28;
- level1.client = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name());
- W_ERROR_HAVE_NO_MEMORY(level1.client);
- level1.user = cli_credentials_get_username(creds);
- level1.build = 1381;
- level1.major = 2;
- level1.minor = 0;
- level1.processor = 0;
+ werror = spoolss_init_spoolss_UserLevel1(mem_ctx,
+ cli_credentials_get_username(creds),
+ &level1);
+ if (!W_ERROR_IS_OK(werror)) {
+ return werror;
+ }
userlevel_ctr.level = 1;
userlevel_ctr.user_info.level1 = &level1;
@@ -229,14 +228,12 @@ WERROR rpccli_spoolss_addprinterex(struct rpc_pipe_client *cli,
ZERO_STRUCT(devmode_ctr);
ZERO_STRUCT(secdesc_ctr);
- level1.size = 28;
- level1.build = 1381;
- level1.major = 2;
- level1.minor = 0;
- level1.processor = 0;
- level1.client = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name());
- W_ERROR_HAVE_NO_MEMORY(level1.client);
- level1.user = cli_credentials_get_username(creds);
+ result = spoolss_init_spoolss_UserLevel1(mem_ctx,
+ cli_credentials_get_username(creds),
+ &level1);
+ if (!W_ERROR_IS_OK(result)) {
+ return result;
+ }
userlevel_ctr.level = 1;
userlevel_ctr.user_info.level1 = &level1;
diff --git a/source3/rpc_client/init_spoolss.c b/source3/rpc_client/init_spoolss.c
index 9a4dab6..c341b82 100644
--- a/source3/rpc_client/init_spoolss.c
+++ b/source3/rpc_client/init_spoolss.c
@@ -446,3 +446,34 @@ const char *spoolss_get_short_filesys_environment(const char *environment)
return NULL;
}
}
+
+/* Windows 7 and Windows Server 2008 R2 */
+#define GLOBAL_SPOOLSS_CLIENT_OS_MAJOR_DEFAULT 6
+#define GLOBAL_SPOOLSS_CLIENT_OS_MINOR_DEFAULT 1
+#define GLOBAL_SPOOLSS_CLIENT_OS_BUILD_DEFAULT 7007
+
+WERROR spoolss_init_spoolss_UserLevel1(TALLOC_CTX *mem_ctx,
+ const char *username,
+ struct spoolss_UserLevel1 *r)
+{
+ ZERO_STRUCTP(r);
+
+ r->size = 28;
+ r->client = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name());
+ W_ERROR_HAVE_NO_MEMORY(r->client);
+ r->user = talloc_strdup(mem_ctx, username);
+ W_ERROR_HAVE_NO_MEMORY(r->user);
+ r->processor = 0;
+
+ r->major = lp_parm_int(GLOBAL_SECTION_SNUM,
+ "spoolss_client", "os_major",
+ GLOBAL_SPOOLSS_CLIENT_OS_MAJOR_DEFAULT);
+ r->minor = lp_parm_int(GLOBAL_SECTION_SNUM,
+ "spoolss_client", "os_minor",
+ GLOBAL_SPOOLSS_CLIENT_OS_MINOR_DEFAULT);
+ r->build = lp_parm_int(GLOBAL_SECTION_SNUM,
+ "spoolss_client", "os_build",
+ GLOBAL_SPOOLSS_CLIENT_OS_BUILD_DEFAULT);
+
+ return WERR_OK;
+}
diff --git a/source3/rpc_client/init_spoolss.h b/source3/rpc_client/init_spoolss.h
index 376eaef..062e37b 100644
--- a/source3/rpc_client/init_spoolss.h
+++ b/source3/rpc_client/init_spoolss.h
@@ -48,5 +48,8 @@ WERROR spoolss_create_default_devmode(TALLOC_CTX *mem_ctx,
WERROR spoolss_create_default_secdesc(TALLOC_CTX *mem_ctx,
struct spoolss_security_descriptor **secdesc);
const char *spoolss_get_short_filesys_environment(const char *environment);
+WERROR spoolss_init_spoolss_UserLevel1(TALLOC_CTX *mem_ctx,
+ const char *username,
+ struct spoolss_UserLevel1 *r);
#endif /* _RPC_CLIENT_INIT_SPOOLSS_H_ */
diff --git a/source3/rpcclient/cmd_iremotewinspool.c b/source3/rpcclient/cmd_iremotewinspool.c
index c6148ec..7f0cecf 100644
--- a/source3/rpcclient/cmd_iremotewinspool.c
+++ b/source3/rpcclient/cmd_iremotewinspool.c
@@ -24,6 +24,7 @@
#include "libsmb/libsmb.h"
#include "auth/gensec/gensec.h"
#include "auth/credentials/credentials.h"
+#include "rpc_client/init_spoolss.h"
/****************************************************************************
****************************************************************************/
@@ -33,6 +34,7 @@ static WERROR cmd_iremotewinspool_async_open_printer(struct rpc_pipe_client *cli
int argc, const char **argv)
{
NTSTATUS status;
+ WERROR werror;
struct policy_handle hnd;
struct spoolss_DevmodeContainer devmode_ctr;
struct spoolss_UserLevelCtr client_info_ctr;
@@ -59,13 +61,13 @@ static WERROR cmd_iremotewinspool_async_open_printer(struct rpc_pipe_client *cli
ZERO_STRUCT(devmode_ctr);
- level1.size = 40;
- level1.client = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name());
- W_ERROR_HAVE_NO_MEMORY(level1.client);
- level1.user = cli_credentials_get_username(creds);
- level1.build = 1381;
- level1.major = 3;
- level1.minor = 0;
+ werror = spoolss_init_spoolss_UserLevel1(mem_ctx,
+ cli_credentials_get_username(creds),
+ &level1);
+ if (!W_ERROR_IS_OK(werror)) {
+ return werror;
+ }
+
level1.processor = PROCESSOR_ARCHITECTURE_AMD64;
client_info_ctr.level = 1;
diff --git a/source4/torture/rpc/iremotewinspool.c b/source4/torture/rpc/iremotewinspool.c
index d419e9c..b4dbe71 100644
--- a/source4/torture/rpc/iremotewinspool.c
+++ b/source4/torture/rpc/iremotewinspool.c
@@ -33,31 +33,77 @@ struct test_iremotewinspool_context {
const char *environment;
};
+enum client_os_version
+{
+ WIN_2000,
+ WIN_VISTA,
+ WIN_SERVER_2008,
+ WIN_7,
+ WIN_SERVER_2008R2,
+ WIN_8,
+ WIN_SERVER_2012,
+ WIN_10,
+ WIN_SERVER_2016
+};
+
+static struct spoolss_UserLevel1 test_get_client_info(struct torture_context *tctx,
+ enum client_os_version os,
+ enum spoolss_MajorVersion major_number,
+ enum spoolss_MinorVersion minor_number)
+{
+ struct spoolss_UserLevel1 level1;
+
+ level1.size = 28;
+ level1.client = talloc_asprintf(tctx, "\\\\%s", "mthelena");
+ level1.user = "GD";
+ level1.processor = PROCESSOR_ARCHITECTURE_AMD64;
+ level1.major = major_number;
+ level1.minor = minor_number;
+
+ switch (os) {
+ case WIN_SERVER_2016:
+ case WIN_10:
+ level1.build = 10586;
+ break;
+ case WIN_SERVER_2012:
+ case WIN_8:
+ level1.build = 9200;
+ break;
+ case WIN_SERVER_2008R2:
+ case WIN_7:
+ level1.build = 7007;
+ break;
+ case WIN_SERVER_2008:
+ case WIN_VISTA:
+ level1.build = 6000;
+ break;
+ case WIN_2000:
+ level1.build = 1382;
+ break;
+ default:
+ level1.build = 7007;
+ }
+
+ return level1;
+}
+
static bool test_AsyncOpenPrinter_byprinter(struct torture_context *tctx,
struct test_iremotewinspool_context *ctx,
struct dcerpc_pipe *p,
const char *printer_name,
+ struct spoolss_UserLevel1 cinfo,
struct policy_handle *handle)
{
struct dcerpc_binding_handle *b = p->binding_handle;
struct spoolss_DevmodeContainer devmode_ctr;
struct spoolss_UserLevelCtr client_info_ctr;
- struct spoolss_UserLevel1 level1;
uint32_t access_mask = SERVER_ALL_ACCESS;
struct winspool_AsyncOpenPrinter r;
ZERO_STRUCT(devmode_ctr);
- level1.size = 28;
- level1.client = talloc_asprintf(tctx, "\\\\%s", "mthelena");
- level1.user = "GD";
- level1.build = 1381;
- level1.major = 3;
- level1.minor = 0;
- level1.processor = PROCESSOR_ARCHITECTURE_AMD64;
-
client_info_ctr.level = 1;
- client_info_ctr.user_info.level1 = &level1;
+ client_info_ctr.user_info.level1 = &cinfo;
r.in.pPrinterName = printer_name;
r.in.pDatatype = NULL;
@@ -196,6 +242,7 @@ static bool torture_rpc_iremotewinspool_setup_common(struct torture_context *tct
struct test_iremotewinspool_context *t)
{
const char *printer_name;
+ struct spoolss_UserLevel1 client_info;
struct dcerpc_binding *binding;
torture_assert_ntstatus_ok(tctx,
@@ -216,10 +263,12 @@ static bool torture_rpc_iremotewinspool_setup_common(struct torture_context *tct
printer_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(t->iremotewinspool_pipe));
+ client_info = test_get_client_info(tctx, WIN_7, 6, 1);
+
torture_assert(tctx,
test_AsyncOpenPrinter_byprinter(tctx, t,
t->iremotewinspool_pipe, printer_name,
- &t->server_handle),
+ client_info, &t->server_handle),
"failed to open printserver");
torture_assert(tctx,
test_get_environment(tctx,
@@ -269,12 +318,15 @@ static bool test_AsyncClosePrinter(struct torture_context *tctx,
struct dcerpc_pipe *p = ctx->iremotewinspool_pipe;
const char *printer_name;
+ struct spoolss_UserLevel1 client_info;
struct policy_handle handle;
printer_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+ client_info = test_get_client_info(tctx, WIN_7, 6, 1);
+
torture_assert(tctx,
- test_AsyncOpenPrinter_byprinter(tctx, ctx, p, printer_name, &handle),
+ test_AsyncOpenPrinter_byprinter(tctx, ctx, p, printer_name, client_info, &handle),
"failed to test AsyncOpenPrinter");
torture_assert(tctx,
@@ -292,12 +344,15 @@ static bool test_AsyncOpenPrinter(struct torture_context *tctx,
struct dcerpc_pipe *p = ctx->iremotewinspool_pipe;
const char *printer_name;
+ struct spoolss_UserLevel1 client_info;
struct policy_handle handle;
printer_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+ client_info = test_get_client_info(tctx, WIN_7, 6, 1);
+
torture_assert(tctx,
- test_AsyncOpenPrinter_byprinter(tctx, ctx, p, printer_name, &handle),
+ test_AsyncOpenPrinter_byprinter(tctx, ctx, p, printer_name, client_info, &handle),
"failed to test AsyncOpenPrinter");
test_AsyncClosePrinter_byhandle(tctx, ctx, p, &handle);
@@ -305,6 +360,70 @@ static bool test_AsyncOpenPrinter(struct torture_context *tctx,
return true;
}
+/*
+ * Validate the result of AsyncOpenPrinter calls based on client info
+ * build number. Windows Server 2016 rejects an advertised build
+ * number less than 6000(Windows Vista and Windows Server 2008, or older)
+ */
+static bool test_AsyncOpenPrinterValidateBuildNumber(struct torture_context *tctx,
+ void *private_data)
+{
+ struct test_iremotewinspool_context *ctx =
+ talloc_get_type_abort(private_data, struct test_iremotewinspool_context);
+
+ struct dcerpc_pipe *p = ctx->iremotewinspool_pipe;
+ const char *printer_name;
+ struct spoolss_UserLevel1 client_info;
+ struct policy_handle handle;
+ struct dcerpc_binding_handle *b = p->binding_handle;
+ struct spoolss_DevmodeContainer devmode_ctr;
+ struct spoolss_UserLevelCtr client_info_ctr = {
+ .level = 1,
+ };
+ uint32_t access_mask = SERVER_ALL_ACCESS;
+ struct winspool_AsyncOpenPrinter r;
+ NTSTATUS status;
+ bool ok = false;
+
+ printer_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+ torture_assert_not_null(tctx, printer_name, "Cannot allocate memory");
+
+ /* fail with Windows 2000 build number */
+ client_info = test_get_client_info(tctx, WIN_2000, 3, SPOOLSS_MINOR_VERSION_0);
+
+ ZERO_STRUCT(devmode_ctr);
+
+ client_info_ctr.user_info.level1 = &client_info;
+
+ r.in.pPrinterName = printer_name;
+ r.in.pDatatype = NULL;
+ r.in.pDevModeContainer = &devmode_ctr;
+ r.in.AccessRequired = access_mask;
+ r.in.pClientInfo = &client_info_ctr;
+ r.out.pHandle = &handle;
+
+ status = dcerpc_winspool_AsyncOpenPrinter_r(b, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "AsyncOpenPrinter failed");
+ torture_assert_werr_equal(tctx, r.out.result, WERR_ACCESS_DENIED,
+ "AsyncOpenPrinter should have failed");
+
+ /* succeed with Windows 7 build number */
+ client_info = test_get_client_info(tctx, WIN_7, 6, 1);
+ client_info_ctr.user_info.level1 = &client_info;
+ r.in.pClientInfo = &client_info_ctr;
+
+ status = dcerpc_winspool_AsyncOpenPrinter_r(b, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "AsyncOpenPrinter failed");
+ torture_assert_werr_ok(tctx, r.out.result,
+ "AsyncOpenPrinter failed");
+
+ ok = test_AsyncClosePrinter_byhandle(tctx, ctx, p, &handle);
+ torture_assert(tctx, ok, "failed to AsyncClosePrinter handle");
+
+ return true;
+
+}
+
static struct spoolss_NotifyOption *setup_printserver_NotifyOption(struct torture_context *tctx)
{
struct spoolss_NotifyOption *o;
@@ -871,6 +990,7 @@ static bool test_OpenPrinter(struct torture_context *tctx,
struct policy_handle handle;
struct dcerpc_pipe *s;
struct dcerpc_binding *binding;
+ struct spoolss_UserLevel1 client_info;
struct spoolss_ClosePrinter r;
torture_assert_ntstatus_ok(tctx,
@@ -891,8 +1011,10 @@ static bool test_OpenPrinter(struct torture_context *tctx,
printer_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+ client_info = test_get_client_info(tctx, WIN_7, 6, 1);
+
torture_assert(tctx,
- test_AsyncOpenPrinter_byprinter(tctx, ctx, p, printer_name, &handle),
+ test_AsyncOpenPrinter_byprinter(tctx, ctx, p, printer_name, client_info, &handle),
"failed to open printserver via winspool");
@@ -928,6 +1050,7 @@ struct torture_suite *torture_rpc_iremotewinspool(TALLOC_CTX *mem_ctx)
torture_tcase_add_simple_test(tcase, "AsyncCorePrinterDriverInstalled", test_AsyncCorePrinterDriverInstalled);
torture_tcase_add_simple_test(tcase, "AsyncDeletePrintDriverPackage", test_AsyncDeletePrintDriverPackage);
torture_tcase_add_simple_test(tcase, "AsyncGetPrinterDriverDirectory", test_AsyncGetPrinterDriverDirectory);
+ torture_tcase_add_simple_test(tcase, "AsyncOpenPrinterValidateBuildNumber", test_AsyncOpenPrinterValidateBuildNumber);
tcase = torture_suite_add_tcase(suite, "handles");
diff --git a/source4/torture/rpc/spoolss_access.c b/source4/torture/rpc/spoolss_access.c
index 28cecf0..946b420 100644
--- a/source4/torture/rpc/spoolss_access.c
+++ b/source4/torture/rpc/spoolss_access.c
@@ -74,9 +74,10 @@ static bool test_openprinter_handle(struct torture_context *tctx,
level1.size = 28;
level1.client = talloc_asprintf(tctx, "\\\\%s", "smbtorture");
level1.user = username;
- level1.build = 1381;
- level1.major = 3;
- level1.minor = 0;
+ /* Windows 7 and Windows Server 2008 R2 */
+ level1.build = 7007;
+ level1.major = 6;
+ level1.minor = 1;
level1.processor= 0;
r.in.printername = printername;
--
Samba Shared Repository
More information about the samba-cvs
mailing list