[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Tue Aug 23 03:01:03 UTC 2016


The branch, master has been updated
       via  8aa9712 s4-torture: Enable tests for printer driver info level 8
       via  4a2d911 s3-spoolss: Support for adding printer drivers with info level 8
       via  e99c8b3 s4-torture: add test for spoolss_GetPrinterDriverPackagePath().
       via  2d4107f librpc: fix IDL for spoolss_GetPrinterDriverPackagePath()
       via  54eafca s4-torture: add test for spoolss_CorePrinterDriver().
       via  bb8267c librpc: fix spoolss_GetCorePrinterDrivers IDL.
       via  4b75b49 spoolss: add various well known core printer driver file GUIDs to IDL.
       via  9c5cd99 hresult: create enough space for the hresult_errstr message.
       via  beb99b8 s4-scripting: let gen_hresult.py tolerate empty lines.
      from  272f5c9 s3: libsmb: Add the capability to find a @GMT- path in an SMB2 create and transform to a timewarp token.

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 8aa97126a896e9cc208ccaa7bb5ae388fd8d8298
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Aug 18 10:30:21 2016 +0200

    s4-torture: Enable tests for printer driver info level 8
    
    Pair-Programmed-With: Guenther Deschner <gd at samba.org>
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Tue Aug 23 05:00:13 CEST 2016 on sn-devel-144

commit 4a2d911a0b08a42be38399b4ea07a732c713f18e
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Aug 18 10:26:10 2016 +0200

    s3-spoolss: Support for adding printer drivers with info level 8
    
    We already supported getting driver info level 8 but not adding it. This
    allows adding printer drivers with level. So several fields where emtpy.
    
    Microsoft released a security update for Windows print spooler
    components which requires support for driver info level 8 now. This is
    needed to find out if a driver is PACKAGE_AWARE or not.
    
    Pair-Programmed-With: Guenther Deschner <gd at samba.org>
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit e99c8b34fe0be49442ae8ed32b2c740c64541bd6
Author: Günther Deschner <gd at samba.org>
Date:   Sat Aug 20 00:01:52 2016 +0200

    s4-torture: add test for spoolss_GetPrinterDriverPackagePath().
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 2d4107f9e17e441107203a9965f739d13bcef11a
Author: Günther Deschner <gd at samba.org>
Date:   Sat Aug 20 00:00:50 2016 +0200

    librpc: fix IDL for spoolss_GetPrinterDriverPackagePath()
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 54eafcaa12b7c6e2acf3bbc372d1b1b840c53da2
Author: Günther Deschner <gd at samba.org>
Date:   Fri Aug 19 23:27:19 2016 +0200

    s4-torture: add test for spoolss_CorePrinterDriver().
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit bb8267ce49a7c0c0387a0b3b835da6e7f3629b6c
Author: Günther Deschner <gd at samba.org>
Date:   Fri Aug 19 23:26:34 2016 +0200

    librpc: fix spoolss_GetCorePrinterDrivers IDL.
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 4b75b49816ef1b2ef32ed232375fb7f00102657e
Author: Günther Deschner <gd at samba.org>
Date:   Mon Aug 22 14:41:05 2016 +0200

    spoolss: add various well known core printer driver file GUIDs to IDL.
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 9c5cd9922bc36edf1d60c623fff7ffea02e775c5
Author: Günther Deschner <gd at samba.org>
Date:   Mon Aug 22 14:21:25 2016 +0200

    hresult: create enough space for the hresult_errstr message.
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit beb99b80612556bc47e72a63f89fca75839d91d4
Author: Günther Deschner <gd at samba.org>
Date:   Sat Aug 20 00:32:39 2016 +0200

    s4-scripting: let gen_hresult.py tolerate empty lines.
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 libcli/util/hresult.c                       |   2 +-
 librpc/idl/spoolss.idl                      |  13 +-
 selftest/knownfail                          |   2 +
 source3/printing/nt_printing.c              |  30 +++++
 source3/rpc_server/spoolss/srv_spoolss_nt.c |  19 ++-
 source4/scripting/bin/gen_hresult.py        |   4 +-
 source4/torture/rpc/spoolss.c               | 191 +++++++++++++++++++++++++++-
 7 files changed, 243 insertions(+), 18 deletions(-)


Changeset truncated at 500 lines:

diff --git a/libcli/util/hresult.c b/libcli/util/hresult.c
index 1b3a8f2..327d97b 100644
--- a/libcli/util/hresult.c
+++ b/libcli/util/hresult.c
@@ -14688,7 +14688,7 @@ const char *hresult_errstr_const(HRESULT err_code)
 
 const char *hresult_errstr(HRESULT err_code)
 {
-	static char msg[20];
+	static char msg[22];
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(hresult_errs); i++) {
diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index 5bbc267..ae10917 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -3277,14 +3277,21 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
 
 	/******************/
 	/* Function: 0x66 */
+
+	const string SPOOLSS_CORE_PRINT_PACKAGE_FILES_UNIDRV  = "{D20EA372-DD35-4950-9ED8-A6335AFE79F0}";
+	const string SPOOLSS_CORE_PRINT_PACKAGE_FILES_PSCRIPT = "{D20EA372-DD35-4950-9ED8-A6335AFE79F1}";
+	const string SPOOLSS_CORE_PRINT_PACKAGE_FILES_PCLXL   = "{D20EA372-DD35-4950-9ED8-A6335AFE79F2}";
+	const string SPOOLSS_CORE_PRINT_PACKAGE_FILES_PLOTTER = "{D20EA372-DD35-4950-9ED8-A6335AFE79F4}";
+	const string SPOOLSS_CORE_PRINT_PACKAGE_FILES_XPSDRV  = "{D20EA372-DD35-4950-9ED8-A6335AFE79F5}";
+
 	typedef [public] struct {
 		GUID core_driver_guid;
 		NTTIME driver_date;
 		hyper driver_version;
-		[charset(UTF8)] uint8 formname[520];
+		[charset(UTF16)] uint16 szPackageID[260];
 	} spoolss_CorePrinterDriver;
 
-	[public] WERROR spoolss_GetCorePrinterDrivers(
+	[public] HRESULT spoolss_GetCorePrinterDrivers(
 		[in,unique] [string,charset(UTF16)] uint16 *servername,
 		[in,ref] [string,charset(UTF16)] uint16 *architecture,
 		[in] uint32 core_driver_size,
@@ -3300,7 +3307,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
 
 	/******************/
 	/* Function: 0x68 */
-	WERROR spoolss_GetPrinterDriverPackagePath(
+	HRESULT spoolss_GetPrinterDriverPackagePath(
 		[in,unique] [string,charset(UTF16)] uint16 *servername,
 		[in,ref] [string,charset(UTF16)] uint16 *architecture,
 		[in,unique] [string,charset(UTF16)] uint16 *language,
diff --git a/selftest/knownfail b/selftest/knownfail
index ffcaf06..97538f4 100644
--- a/selftest/knownfail
+++ b/selftest/knownfail
@@ -182,6 +182,8 @@
 ^samba3.rpc.spoolss.printer.addprinterex.driver_info_winreg # knownfail or flapping?
 ^samba3.rpc.spoolss.printer.*.publish_toggle\(.*\)$ # needs spoolss AD member env
 ^samba3.rpc.spoolss.printserver.*.add_processor\(.*\)$
+^samba3.rpc.spoolss.printserver.*.get_core_printer_drivers\(.*\)$
+^samba3.rpc.spoolss.printserver.*.get_printer_driver_package_path\(.*\)$
 ^samba4.rpc.fsrvp	# fsrvp server only provided by smbd
 #
 # The following tests fail against ad_dc (aka s3fs) currently.
diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c
index 36e7324..d5b92a1 100644
--- a/source3/printing/nt_printing.c
+++ b/source3/printing/nt_printing.c
@@ -952,6 +952,15 @@ WERROR clean_up_driver_struct(TALLOC_CTX *mem_ctx,
 						    &r->info.info6->help_file,
 						    r->info.info6->dependent_files,
 						    &r->info.info6->version);
+	case 8:
+		return clean_up_driver_struct_level(mem_ctx, session_info,
+						    r->info.info8->architecture,
+						    &r->info.info8->driver_path,
+						    &r->info.info8->data_file,
+						    &r->info.info8->config_file,
+						    &r->info.info8->help_file,
+						    r->info.info8->dependent_files,
+						    &r->info.info8->version);
 	default:
 		return WERR_NOT_SUPPORTED;
 	}
@@ -978,6 +987,23 @@ static void convert_level_6_to_level3(struct spoolss_AddDriverInfo3 *dst,
 	dst->dependent_files	= src->dependent_files;
 }
 
+static void convert_level_8_to_level3(struct spoolss_AddDriverInfo3 *dst,
+				      const struct spoolss_AddDriverInfo8 *src)
+{
+	dst->version		= src->version;
+
+	dst->driver_name	= src->driver_name;
+	dst->architecture	= src->architecture;
+	dst->driver_path	= src->driver_path;
+	dst->data_file		= src->data_file;
+	dst->config_file	= src->config_file;
+	dst->help_file		= src->help_file;
+	dst->monitor_name	= src->monitor_name;
+	dst->default_datatype	= src->default_datatype;
+	dst->_ndr_size_dependent_files = src->_ndr_size_dependent_files;
+	dst->dependent_files	= src->dependent_files;
+}
+
 /****************************************************************************
 ****************************************************************************/
 
@@ -1075,6 +1101,10 @@ WERROR move_driver_to_download_area(struct auth_session_info *session_info,
 		convert_level_6_to_level3(&converted_driver, r->info.info6);
 		driver = &converted_driver;
 		break;
+	case 8:
+		convert_level_8_to_level3(&converted_driver, r->info.info8);
+		driver = &converted_driver;
+		break;
 	default:
 		DEBUG(0,("move_driver_to_download_area: Unknown info level (%u)\n", (unsigned int)r->level));
 		return WERR_UNKNOWN_LEVEL;
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index 2778ba8..0dcae46 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -8466,10 +8466,9 @@ WERROR _spoolss_AddPrinterDriverEx(struct pipes_struct *p,
 	}
 
 	/* FIXME */
-	if (r->in.info_ctr->level != 3 && r->in.info_ctr->level != 6) {
-		/* Clever hack from Martin Zielinski <mz at seh.de>
-		 * to allow downgrade from level 8 (Vista).
-		 */
+	if (r->in.info_ctr->level != 3 &&
+	    r->in.info_ctr->level != 6 &&
+	    r->in.info_ctr->level != 8) {
 		DEBUG(0,("%s: level %d not yet implemented\n", fn,
 			r->in.info_ctr->level));
 		return WERR_UNKNOWN_LEVEL;
@@ -11177,11 +11176,11 @@ WERROR _spoolss_65(struct pipes_struct *p,
  _spoolss_GetCorePrinterDrivers
 ****************************************************************/
 
-WERROR _spoolss_GetCorePrinterDrivers(struct pipes_struct *p,
-				      struct spoolss_GetCorePrinterDrivers *r)
+HRESULT _spoolss_GetCorePrinterDrivers(struct pipes_struct *p,
+				       struct spoolss_GetCorePrinterDrivers *r)
 {
 	p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
-	return WERR_NOT_SUPPORTED;
+	return HRES_ERROR_NOT_SUPPORTED;
 }
 
 /****************************************************************
@@ -11199,11 +11198,11 @@ WERROR _spoolss_67(struct pipes_struct *p,
  _spoolss_GetPrinterDriverPackagePath
 ****************************************************************/
 
-WERROR _spoolss_GetPrinterDriverPackagePath(struct pipes_struct *p,
-					    struct spoolss_GetPrinterDriverPackagePath *r)
+HRESULT _spoolss_GetPrinterDriverPackagePath(struct pipes_struct *p,
+					     struct spoolss_GetPrinterDriverPackagePath *r)
 {
 	p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
-	return WERR_NOT_SUPPORTED;
+	return HRES_ERROR_NOT_SUPPORTED;
 }
 
 /****************************************************************
diff --git a/source4/scripting/bin/gen_hresult.py b/source4/scripting/bin/gen_hresult.py
index 176c89d..cdc9142 100755
--- a/source4/scripting/bin/gen_hresult.py
+++ b/source4/scripting/bin/gen_hresult.py
@@ -50,6 +50,8 @@ def parseErrorDescriptions( input_file, isWinError ):
     for line in fileContents:
         content = line.strip().split(None,1)
         # start new error definition ?
+        if len(content) == 0:
+            continue
         if line.startswith("0x"):
             newError = ErrorDef()
             newError.err_code = content[0]
@@ -184,7 +186,7 @@ def generateSourceFile(out_file):
     out_file.write("\n")
     out_file.write("const char *hresult_errstr(HRESULT err_code)\n")
     out_file.write("{\n");
-    out_file.write("	static char msg[20];\n")
+    out_file.write("	static char msg[22];\n")
     out_file.write("	int i;\n")
     out_file.write("\n")
     out_file.write("	for (i = 0; i < ARRAY_SIZE(hresult_errs); i++) {\n")
diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c
index 4bc99f2..c506c43 100644
--- a/source4/torture/rpc/spoolss.c
+++ b/source4/torture/rpc/spoolss.c
@@ -7874,6 +7874,192 @@ static bool test_architecture_buffer(struct torture_context *tctx,
 	return true;
 }
 
+static bool test_get_core_printer_drivers_arch_guid(struct torture_context *tctx,
+						    struct dcerpc_pipe *p,
+						    const char *architecture,
+						    const char *guid_str,
+						    const char **package_id)
+{
+	struct spoolss_GetCorePrinterDrivers r;
+	struct spoolss_CorePrinterDriver core_printer_drivers;
+	DATA_BLOB blob;
+	const char **s;
+	struct dcerpc_binding_handle *b = p->binding_handle;
+	struct GUID guid;
+
+	s = talloc_zero_array(tctx, const char *, 2);
+
+	r.in.servername	= talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+	r.in.architecture = "foobar";
+	r.in.core_driver_size = 0;
+	r.in.core_driver_dependencies = "";
+	r.in.core_printer_driver_count = 0;
+	r.out.core_printer_drivers = &core_printer_drivers;
+
+	torture_assert_ntstatus_ok(tctx,
+		dcerpc_spoolss_GetCorePrinterDrivers_r(b, tctx, &r),
+		"spoolss_GetCorePrinterDrivers failed");
+	torture_assert_hresult_equal(tctx, r.out.result, HRES_E_INVALIDARG,
+		"spoolss_GetCorePrinterDrivers failed");
+
+	guid = GUID_random();
+	s[0] = GUID_string2(tctx, &guid);
+
+	torture_assert(tctx,
+		push_reg_multi_sz(tctx, &blob, s),
+		"push_reg_multi_sz failed");
+
+	r.in.core_driver_size = blob.length;
+	r.in.core_driver_dependencies = s[0];
+	r.in.core_printer_driver_count = 1;
+	r.out.core_printer_drivers = talloc_zero_array(tctx, struct spoolss_CorePrinterDriver, r.in.core_printer_driver_count);
+
+	torture_assert_ntstatus_ok(tctx,
+		dcerpc_spoolss_GetCorePrinterDrivers_r(b, tctx, &r),
+		"spoolss_GetCorePrinterDrivers failed");
+	torture_assert_werr_equal(tctx,
+		W_ERROR(WIN32_FROM_HRESULT(r.out.result)), WERR_INVALID_ENVIRONMENT,
+		"spoolss_GetCorePrinterDrivers failed");
+
+	r.in.architecture = architecture;
+
+	torture_assert_ntstatus_ok(tctx,
+		dcerpc_spoolss_GetCorePrinterDrivers_r(b, tctx, &r),
+		"spoolss_GetCorePrinterDrivers failed");
+	torture_assert_werr_equal(tctx,
+		W_ERROR(WIN32_FROM_HRESULT(r.out.result)), WERR_NOT_FOUND,
+		"spoolss_GetCorePrinterDrivers failed");
+
+	s[0] = talloc_strdup(s, guid_str);
+
+	torture_assert(tctx,
+		push_reg_multi_sz(tctx, &blob, s),
+		"push_reg_multi_sz failed");
+
+	r.in.core_driver_size = blob.length;
+	r.in.core_driver_dependencies = s[0];
+	r.in.core_printer_driver_count = 1;
+	r.out.core_printer_drivers = talloc_zero_array(tctx, struct spoolss_CorePrinterDriver, r.in.core_printer_driver_count);
+
+	torture_assert_ntstatus_ok(tctx,
+		dcerpc_spoolss_GetCorePrinterDrivers_r(b, tctx, &r),
+		"spoolss_GetCorePrinterDrivers failed");
+	torture_assert_hresult_ok(tctx, r.out.result,
+		"spoolss_GetCorePrinterDrivers failed");
+
+	if (package_id) {
+		*package_id = r.out.core_printer_drivers[0].szPackageID;
+	}
+
+	return true;
+}
+
+static bool test_get_core_printer_drivers(struct torture_context *tctx,
+					  void *private_data)
+{
+	struct test_spoolss_context *ctx =
+		talloc_get_type_abort(private_data, struct test_spoolss_context);
+
+	const char *architectures[] = {
+		SPOOLSS_ARCHITECTURE_NT_X86,
+		SPOOLSS_ARCHITECTURE_x64
+	};
+	int i;
+	struct dcerpc_pipe *p = ctx->spoolss_pipe;
+
+	for (i=0; i < ARRAY_SIZE(architectures); i++) {
+
+		torture_comment(tctx, "Testing GetCorePrinterDrivers(\"%s\",\"%s\")\n",
+			architectures[i],
+			SPOOLSS_CORE_PRINT_PACKAGE_FILES_XPSDRV);
+
+		torture_assert(tctx,
+			test_get_core_printer_drivers_arch_guid(tctx, p,
+				architectures[i],
+				SPOOLSS_CORE_PRINT_PACKAGE_FILES_XPSDRV,
+				NULL),
+			"");
+	}
+
+	return true;
+}
+
+static bool test_get_printer_driver_package_path(struct torture_context *tctx,
+						 void *private_data)
+{
+	struct test_spoolss_context *ctx =
+		talloc_get_type_abort(private_data, struct test_spoolss_context);
+
+	const char *architectures[] = {
+		SPOOLSS_ARCHITECTURE_NT_X86,
+		SPOOLSS_ARCHITECTURE_x64
+	};
+	int i;
+	struct dcerpc_pipe *p = ctx->spoolss_pipe;
+	struct dcerpc_binding_handle *b = p->binding_handle;
+
+	for (i=0; i < ARRAY_SIZE(architectures); i++) {
+		struct spoolss_GetPrinterDriverPackagePath r;
+		uint32_t required = 0;
+		const char *package_id = NULL;
+
+		test_get_core_printer_drivers_arch_guid(tctx, p,
+			architectures[i],
+			SPOOLSS_CORE_PRINT_PACKAGE_FILES_XPSDRV,
+			&package_id),
+
+		torture_comment(tctx, "Testing GetPrinterDriverPackagePath(\"%s\",\"%s\")\n",
+			architectures[i], package_id);
+
+		r.in.servername	= talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+		r.in.architecture = "foobar";
+		r.in.language = NULL;
+		r.in.package_id = "";
+		r.in.driver_package_cab_size = 0;
+		r.in.driver_package_cab = NULL;
+
+		r.out.required = &required;
+		r.out.driver_package_cab = NULL;
+
+		torture_assert_ntstatus_ok(tctx,
+			dcerpc_spoolss_GetPrinterDriverPackagePath_r(b, tctx, &r),
+			"spoolss_GetPrinterDriverPackagePath failed");
+		torture_assert_werr_equal(tctx,
+			W_ERROR(WIN32_FROM_HRESULT(r.out.result)), WERR_INVALID_ENVIRONMENT,
+			"spoolss_GetPrinterDriverPackagePath failed");
+
+		r.in.architecture = architectures[i];
+
+		torture_assert_ntstatus_ok(tctx,
+			dcerpc_spoolss_GetPrinterDriverPackagePath_r(b, tctx, &r),
+			"spoolss_GetPrinterDriverPackagePath failed");
+		torture_assert_werr_equal(tctx,
+			W_ERROR(WIN32_FROM_HRESULT(r.out.result)), WERR_FILE_NOT_FOUND,
+			"spoolss_GetPrinterDriverPackagePath failed");
+
+		r.in.package_id = package_id;
+
+		torture_assert_ntstatus_ok(tctx,
+			dcerpc_spoolss_GetPrinterDriverPackagePath_r(b, tctx, &r),
+			"spoolss_GetPrinterDriverPackagePath failed");
+		torture_assert_hresult_ok(tctx, r.out.result,
+			"spoolss_GetPrinterDriverPackagePath failed");
+
+		r.in.driver_package_cab_size = required;
+		r.in.driver_package_cab = talloc_zero_array(tctx, char, required);
+		r.out.driver_package_cab = talloc_zero_array(tctx, char, required);
+
+		torture_assert_ntstatus_ok(tctx,
+			dcerpc_spoolss_GetPrinterDriverPackagePath_r(b, tctx, &r),
+			"spoolss_GetPrinterDriverPackagePath failed");
+		torture_assert_hresult_ok(tctx, r.out.result,
+			"spoolss_GetPrinterDriverPackagePath failed");
+
+	}
+
+	return true;
+}
+
 static bool test_PrintServer_Forms_Winreg(struct torture_context *tctx,
 					  void *private_data)
 {
@@ -9049,6 +9235,8 @@ struct torture_suite *torture_rpc_spoolss(TALLOC_CTX *mem_ctx)
 	torture_tcase_add_simple_test(tcase, "enum_printers_servername", test_EnumPrinters_servername);
 	torture_tcase_add_simple_test(tcase, "enum_printer_drivers_old", test_EnumPrinterDrivers_old);
 	torture_tcase_add_simple_test(tcase, "architecture_buffer", test_architecture_buffer);
+	torture_tcase_add_simple_test(tcase, "get_core_printer_drivers", test_get_core_printer_drivers);
+	torture_tcase_add_simple_test(tcase, "get_printer_driver_package_path", test_get_printer_driver_package_path);
 
 	torture_suite_add_suite(suite, torture_rpc_spoolss_printer(suite));
 
@@ -10177,7 +10365,6 @@ static bool test_add_driver_arg(struct torture_context *tctx,
 			switch (levels[i]) {
 			case 2:
 			case 4:
-			case 8:
 				torture_comment(tctx, "skipping level %d against samba\n", levels[i]);
 				continue;
 			default:
@@ -10221,8 +10408,6 @@ static bool test_add_driver_arg(struct torture_context *tctx,
 			switch (levels[i]) {
 			case 2:
 			case 4:
-			case 8:
-				torture_comment(tctx, "skipping level %d against samba\n", levels[i]);
 				continue;
 			default:
 				break;


-- 
Samba Shared Repository



More information about the samba-cvs mailing list