bug in new Windows 9x driver TDB support

Gerald Carter gcarter at valinux.com
Thu Aug 17 16:20:30 GMT 2000


I found out why 9x  drivers uploaded from a NT client
are not downloaded to a 9x client....

from smbd/lanman.c:

static void fill_printq_info_52(connection_struct *conn, 
			int snum, int uLevel,
			struct pack_desc* desc,
			int count, print_queue_struct* queue,
			print_status_struct* status)
{
  <snip...>
  if ((ok = get_a_printer_driver_9x_compatible(gen_line,
               lp_printerdriver(snum)) ) == True) 
  {
	...



The problem is that unless a 'printer driver' value has 
been defined for the printer the second arg will be "".

Here's why this is a problem.  When you upload a Windows 
9x driver, the name used in the DRIVER_INFO_3 struct sent 
by the client should be the same name as the existing NT 
driver (yes this means that NT drivers must be uploaded 
first).

In order to fix this, the 'printer driver' parameter
should be ignored when looking up 9x driver in the 
printers TDB.  The parameter should only have affect
if we are using the old style printers.def file.  

In fact, here is my plan to depreciate the following 
parameters

	'printer driver file' 	  (G)
	'printer driver'	  (S)
	'printer driver location' (S)

Migration from 2.0.7 to 2.2.0 printer driver support
----------------------------------------------------

* If the admin does not desire the new NT print driver
support, nothing needs to be done.  All existing 
parameters work the same.

* If the admin wants to take advantage of NT printer 
driver support but does not want to migrate the 9x drivers
to the new setup, the leave the existing printers.def 
file.  When smbd attempts to locate a 9x driver for the 
printer in the TDB and fails it will drop down to 
using the printers.def (and all associated parameters).
The make_printerdef tool will also remain for backwards
compatibility but will be moved to the "this tool is the 
old way of doing it" pile.

* If the admin installs a 9x driver for a printer on
a Samba host (in the printing TDB), this information will 
take precedence and the three old printing parameters
will be ignored (including print driver location).

* If an admin wants to migrate the printers.def file into
the new setup, I can write a script to do this using 
rpcclient.  The main problem is the driver namespace 
(we need the NT driver name first in order to 
be consistent).

And in 3.0, we drop support for the printers.def
altogether.

What do people say to this?




jerry
----------------------------------------------------------------------
   /\  Gerald (Jerry) Carter                     Professional Services
 \/    http://www.valinux.com  VA Linux Systems    gcarter at valinux.com
       http://www.samba.org       SAMBA Team           jerry at samba.org
       http://www.eng.auburn.edu/~cartegw

       "...a hundred billion castaways looking for a home."
                                - Sting "Message in a Bottle" ( 1979 )




More information about the samba-technical mailing list