The branch, master has been updated
       via  d17a6f0 s3-spoolss: Strip off ", DrvConvert" and ",LocalOnly" in 
OpenPrinterEx as seen from Win7 clients.
      from  455bbd5 s3-spoolss: Fixed print job access.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit d17a6f049386ebb8c1418837802dac069d7866e4
Author: Günther Deschner <g...@samba.org>
Date:   Fri Oct 1 22:52:33 2010 +0200

    s3-spoolss: Strip off ", DrvConvert" and ",LocalOnly" in OpenPrinterEx as 
seen from Win7 clients.
    
    These suffixes and their meaning are not documented (yet).
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/rpc_server/srv_spoolss_nt.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/rpc_server/srv_spoolss_nt.c 
b/source3/rpc_server/srv_spoolss_nt.c
index 07733bd..d79c931 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -547,6 +547,7 @@ static bool set_printer_hnd_name(TALLOC_CTX *mem_ctx,
        bool found = false;
        struct spoolss_PrinterInfo2 *info2 = NULL;
        WERROR result;
+       char *p;
 
        /*
         * Hopefully nobody names his printers like this. Maybe \ or ,
@@ -585,6 +586,18 @@ static bool set_printer_hnd_name(TALLOC_CTX *mem_ctx,
 
        DEBUGADD(5, ("searching for [%s]\n", aprinter));
 
+       if ((p = strchr(aprinter, ',')) != NULL) {
+               if (*p == ' ')
+                       p++;
+               if (strnequal(p+1, "DrvConvert", strlen("DrvConvert")) ||
+                   strnequal(p+1, " DrvConvert", strlen(" DrvConvert"))) {
+                       *p = '\0';
+               } else if (strnequal(p+1, "LocalOnly", strlen("LocalOnly")) ||
+                          strnequal(p+1, " LocalOnly", strlen(" LocalOnly"))) {
+                       *p = '\0';
+               }
+       }
+
        /* check for the Port Monitor Interface */
        if ( strequal( aprinter, SPL_XCV_MONITOR_TCPMON ) ) {
                Printer->printer_type = SPLHND_PORTMON_TCP;


-- 
Samba Shared Repository

Reply via email to