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