svn commit: samba r21047 - in branches: SAMBA_3_0/source/rpc_server SAMBA_3_0_24/source/rpc_server

jra at samba.org jra at samba.org
Mon Jan 29 22:51:44 GMT 2007


Author: jra
Date: 2007-01-29 22:51:44 +0000 (Mon, 29 Jan 2007)
New Revision: 21047

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21047

Log:
Hand marshalling hack from Martin Zielinski <mz at seh.de>
to allow Vista to upload printer drivers (it wants level 8
which we don't support yet). Downgrade in the same way
that Windows servers do.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/rpc_server/srv_spoolss.c
   branches/SAMBA_3_0_24/source/rpc_server/srv_spoolss.c


Changeset:
Modified: branches/SAMBA_3_0/source/rpc_server/srv_spoolss.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_spoolss.c	2007-01-29 21:15:25 UTC (rev 21046)
+++ branches/SAMBA_3_0/source/rpc_server/srv_spoolss.c	2007-01-29 22:51:44 UTC (rev 21047)
@@ -1477,6 +1477,15 @@
 	ZERO_STRUCT(r_u);
 	
 	if(!spoolss_io_q_addprinterdriverex("", &q_u, data, 0)) {
+		if (q_u.level != 3 && q_u.level != 6) {
+			/* Clever hack from Martin Zielinski <mz at seh.de>
+			 * to allow downgrade from level 8 (Vista).
+			 */
+			DEBUG(3,("api_spoolss_addprinterdriverex: unknown SPOOL_Q_ADDPRINTERDRIVEREX level %u.\n",
+				(unsigned int)q_u.level ));
+			setup_fault_pdu(p, NT_STATUS(DCERPC_FAULT_INVALID_TAG));
+			return True;
+		}
 		DEBUG(0,("spoolss_io_q_addprinterdriverex: unable to unmarshall SPOOL_Q_ADDPRINTERDRIVEREX.\n"));
 		return False;
 	}

Modified: branches/SAMBA_3_0_24/source/rpc_server/srv_spoolss.c
===================================================================
--- branches/SAMBA_3_0_24/source/rpc_server/srv_spoolss.c	2007-01-29 21:15:25 UTC (rev 21046)
+++ branches/SAMBA_3_0_24/source/rpc_server/srv_spoolss.c	2007-01-29 22:51:44 UTC (rev 21047)
@@ -1477,6 +1477,15 @@
 	ZERO_STRUCT(r_u);
 	
 	if(!spoolss_io_q_addprinterdriverex("", &q_u, data, 0)) {
+		if (q_u.level != 3 && q_u.level != 6) {
+			/* Clever hack from Martin Zielinski <mz at seh.de>
+			 * to allow downgrade from level 8 (Vista).
+			 */
+			DEBUG(3,("api_spoolss_addprinterdriverex: unknown SPOOL_Q_ADDPRINTERDRIVEREX level %u.\n",
+				(unsigned int)q_u.level ));
+			setup_fault_pdu(p, NT_STATUS(DCERPC_FAULT_INVALID_TAG));
+			return True;
+		}
 		DEBUG(0,("spoolss_io_q_addprinterdriverex: unable to unmarshall SPOOL_Q_ADDPRINTERDRIVEREX.\n"));
 		return False;
 	}



More information about the samba-cvs mailing list