-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Fri, 31 Jan 2003, Robert M. Martel wrote:

>       I've followed the steps as listed in the manual.  Log onto a
> windows 2000 client as a user listed as a printer admin.  Load the
> printer driver and make the changes to reflect installed options on the
> printer.  Just as listed in section 6.2.2 of the "how-to" manual
>       
>       Install the printer on the client PC using the add printer wizard
> while logged onto the client machine as a printer admin user - see that
> the device settings are OK.  Change the paper orientation, apply, change
> it back, apply.  Test the printer.  A-OK.
>       
>       Log on to a windows 2000 client as a regular user.  Install the
> printer, check the device settings and all the settings are back to the
> driver defaults.  Remove the printer.  Stop Samba, add my test user to
> the printer admin list, start samba, try again to install the printer,
> now the device settings are as they should be.
>       
>       Samba "knows" the settings I have selected but is not sharing them
> with non-print admin users.  What would prevent the settings from
> downloading along with the drivers?

OK.  after more time than I would like to admit, here the's fix.
The bug is obvious now that I see it.  Sorry for the headaches 
this caused.

This will definitely be in 2.2.8



cheers, jerry
 ----------------------------------------------------------------------
 Hewlett-Packard            ------------------------- http://www.hp.com
 SAMBA Team                 ---------------------- http://www.samba.org
 GnuPG Key                  ---- http://www.plainjoe.org/gpg_public.asc
 "You can never go home again, Oatman, but I guess you can shop there."  
                            --John Cusack - "Grosse Point Blank" (1997)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (GNU/Linux)
Comment: For info see http://quantumlab.net/pine_privacy_guard/

iD8DBQE+VXAYIR7qMdg1EfYRAo/EAKDefxRHBrxBFnqvvQVEXctW7Qc0TACeIMFw
6/EShEhvyOdlmRvHQOvwMQU=
=FNI/
-----END PGP SIGNATURE-----
Index: source/rpc_server/srv_spoolss_nt.c
===================================================================
RCS file: /data/cvs/samba/source/rpc_server/srv_spoolss_nt.c,v
retrieving revision 1.115.2.224
diff -u -B -b -r1.115.2.224 srv_spoolss_nt.c
--- source/rpc_server/srv_spoolss_nt.c  13 Feb 2003 19:40:21 -0000      1.115.2.224
+++ source/rpc_server/srv_spoolss_nt.c  21 Feb 2003 00:15:05 -0000
@@ -7876,12 +7876,22 @@
        uint16  enumkeys[ENUMERATED_KEY_SIZE+1];
        char*   ptr = NULL;
        int     i;
-       char    *PrinterKey = "PrinterDriverData";
+       fstring PrinterKey;
+       UNISTR2 uni_keys;
+       int     enum_key_len;
 
        DEBUG(4,("_spoolss_enumprinterkey\n"));
 
        unistr2_to_dos(key, &q_u->key, sizeof(key) - 1);
 
+       ZERO_STRUCTP(PrinterKey);
+       fstrcpy( PrinterKey, "PrinterDriverData" );
+
+       /* add space for 2 terminating NULLs */
+
+       enum_key_len = strlen( PrinterKey ) + 2;
+
+
        /* 
         * we only support enumating all keys (key == "")
         * Of course, the only key we support is the "PrinterDriverData" 
@@ -7889,22 +7899,13 @@
         */     
        if (strlen(key) == 0)
        {
-               r_u->needed = ENUMERATED_KEY_SIZE *2;
+               r_u->needed = enum_key_len*2;
                if (q_u->size < r_u->needed)
                        return WERR_MORE_DATA;
        
-               ptr = PrinterKey;
-               for (i=0; i<ENUMERATED_KEY_SIZE-2; i++)
-               {
-                       enumkeys[i] = (uint16)(*ptr);
-                       ptr++;
-               }
-
-               /* tag of with 2 '\0's */
-               enumkeys[i++] = '\0';
-               enumkeys[i] = '\0';
+               init_unistr2( &uni_keys, PrinterKey, enum_key_len );
        
-               if (!make_spoolss_buffer5(p->mem_ctx, &r_u->keys, ENUMERATED_KEY_SIZE, 
enumkeys))
+               if ( !make_spoolss_buffer5(p->mem_ctx, &r_u->keys, enum_key_len, 
+uni_keys.buffer) )
                        return WERR_BADFILE;
                        
                return WERR_OK;
-- 
To unsubscribe from this list go to the following URL and read the
instructions:  http://lists.samba.org/mailman/listinfo/samba

Reply via email to