summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArvid Requate <requate@univention.de>2013-11-21 12:35:20 +0100
committerKarolin Seeger <kseeger@samba.org>2013-11-22 11:52:05 +0100
commit4cfd6597bceeb0ef10d14bb7a48badd2264e85a6 (patch)
tree23293c05ee371908ddb8e00cebf624a8ce543ac7
parentd984e764073df34729e5410026d6fa618699126f (diff)
downloadsamba-4cfd6597bceeb0ef10d14bb7a48badd2264e85a6.tar.gz
spoolss: accept XPS_PASS datatype used by Windows 8
The new 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". BUG: https://bugzilla.samba.org/show_bug.cgi?id=10267 Reviewed-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org> (cherry picked from commit b2815b4c8c3e436a79fb7f07be285a417fd6e8cb)
-rw-r--r--source3/rpc_server/spoolss/srv_spoolss_nt.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index 2f1f7c432cc..8372c43fbaf 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -5769,7 +5769,13 @@ WERROR _spoolss_StartDocPrinter(struct pipes_struct *p,
*/
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;
}