The Samba-Bugzilla – Attachment 9433 Details for
Bug 10267
Windows 8 printing via local printer drivers does not work
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
windows8_printer_driver_v4_XPS_PASS.patch
windows8_printer_driver_v4_XPS_PASS.patch (text/plain), 2.81 KB, created by
Arvid Requate
on 2013-11-18 17:15:05 UTC
(
hide
)
Description:
windows8_printer_driver_v4_XPS_PASS.patch
Filename:
MIME Type:
Creator:
Arvid Requate
Created:
2013-11-18 17:15:05 UTC
Size:
2.81 KB
patch
obsolete
>diff -Naur samba-4.1.0.orig/source3/rpc_server/spoolss/srv_spoolss_nt.c samba-4.1.0/source3/rpc_server/spoolss/srv_spoolss_nt.c >--- samba-4.1.0.orig/source3/rpc_server/spoolss/srv_spoolss_nt.c 2013-11-13 16:07:20.000000000 +0100 >+++ samba-4.1.0/source3/rpc_server/spoolss/srv_spoolss_nt.c 2013-11-18 15:49:38.000000000 +0100 >@@ -5781,7 +5781,13 @@ > */ > > if (info_1->datatype) { >- if (strcmp(info_1->datatype, "RAW") != 0) { >+ /* >+ * The v4 driver model used in Windows 8 declares print jobs >+ * intended to bypass the XPS processing layer by setting >+ * datatype to "XPS_PASS" instead of "RAW". >+ */ >+ if ((strcmp(info_1->datatype, "RAW") != 0) >+ && (strcmp(info_1->datatype, "XPS_PASS") != 0)) { > *r->out.job_id = 0; > return WERR_INVALID_DATATYPE; > } >diff -Naur samba-4.1.0.orig/source4/torture/rpc/spoolss.c samba-4.1.0/source4/torture/rpc/spoolss.c >--- samba-4.1.0.orig/source4/torture/rpc/spoolss.c 2013-11-13 16:07:20.000000000 +0100 >+++ samba-4.1.0/source4/torture/rpc/spoolss.c 2013-11-18 16:53:11.000000000 +0100 >@@ -3368,11 +3368,11 @@ > return true; > } > >- >-static bool test_DoPrintTest_add_one_job(struct torture_context *tctx, >+static bool test_DoPrintTest_add_one_job_common(struct torture_context *tctx, > struct dcerpc_binding_handle *b, > struct policy_handle *handle, > const char *document_name, >+ const char *datatype, > uint32_t *job_id) > { > NTSTATUS status; >@@ -3394,7 +3394,7 @@ > > info1.document_name = document_name; > info1.output_file = NULL; >- info1.datatype = "RAW"; >+ info1.datatype = datatype; > > info_ctr.level = 1; > info_ctr.info.info1 = &info1; >@@ -3443,6 +3443,25 @@ > return true; > } > >+static bool test_DoPrintTest_add_one_job(struct torture_context *tctx, >+ struct dcerpc_binding_handle *b, >+ struct policy_handle *handle, >+ const char *document_name, >+ uint32_t *job_id) >+{ >+ test_DoPrintTest_add_one_job_common(tctx, b, handle, document_name, "RAW", job_id); >+} >+ >+static bool test_DoPrintTest_add_one_job_v4(struct torture_context *tctx, >+ struct dcerpc_binding_handle *b, >+ struct policy_handle *handle, >+ const char *document_name, >+ uint32_t *job_id) >+{ >+ test_DoPrintTest_add_one_job_common(tctx, b, handle, document_name, "XPS_PASS", job_id); >+} >+ >+ > static bool test_DoPrintTest_check_jobs(struct torture_context *tctx, > struct dcerpc_binding_handle *b, > struct policy_handle *handle, >@@ -3542,6 +3561,14 @@ > } > > for (i=0; i < num_jobs; i++) { >+ ret &= test_SetJob(tctx, b, handle, job_ids[i], NULL, SPOOLSS_JOB_CONTROL_DELETE); >+ } >+ >+ for (i=0; i < num_jobs; i++) { >+ ret &= test_DoPrintTest_add_one_job_v4(tctx, b, handle, "TorturePrintJob v4", &job_ids[i]); >+ } >+ >+ for (i=0; i < num_jobs; i++) { > ret &= test_SetJob(tctx, b, handle, job_ids[i], NULL, SPOOLSS_JOB_CONTROL_DELETE); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 10267
:
9420
|
9433
|
9458
|
9459
|
9460