The branch, v3-6-test has been updated
       via  ae0cf58 BUG 9474: Downgrade v4 printer driver requests to v3.
       via  93a1d4e spoolss: add SPOOLSS_DRIVER_VERSION_2012 (4) define to IDL.
      from  069f102 BUG 9378: Add extra attributes for AD printer publishing.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit ae0cf58a75874541c4c9b8b29a2b1fc45928be69
Author: Günther Deschner <g...@samba.org>
Date:   Fri Jan 18 00:22:31 2013 +0100

    BUG 9474: Downgrade v4 printer driver requests to v3.
    
    Guenther
    
    Signed-off-by: Günther Deschner <g...@samba.org>
    Reviewed-by: Andreas Schneider <a...@samba.org>
    
    Autobuild-User(master): Andreas Schneider <a...@cryptomilk.org>
    Autobuild-Date(master): Mon Jan 21 16:11:02 CET 2013 on sn-devel-104
    (cherry picked from commit 58fadf2f48a2a409b4ee98fdc0166c7f801a7629)

commit 93a1d4ee4685305e0060e9d5c8028c96ff83257d
Author: Günther Deschner <g...@samba.org>
Date:   Mon Jan 7 15:14:30 2013 +0100

    spoolss: add SPOOLSS_DRIVER_VERSION_2012 (4) define to IDL.
    
    Guenther
    
    Signed-off-by: Günther Deschner <g...@samba.org>
    Reviewed-by: Andreas Schneider <a...@samba.org>
    (cherry picked from commit 638ed90620e3c6a35ef56a11c612c13d6b7d6ff5)

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

Summary of changes:
 librpc/idl/spoolss.idl                      |    3 ++-
 source3/rpc_server/spoolss/srv_spoolss_nt.c |    9 ++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index d888a79..4f706e2 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -1303,7 +1303,8 @@ cpp_quote("#define spoolss_security_descriptor 
security_descriptor")
                SPOOLSS_DRIVER_VERSION_9X       = 0,
                SPOOLSS_DRIVER_VERSION_NT35     = 1,
                SPOOLSS_DRIVER_VERSION_NT4      = 2,
-               SPOOLSS_DRIVER_VERSION_200X     = 3
+               SPOOLSS_DRIVER_VERSION_200X     = 3,
+               SPOOLSS_DRIVER_VERSION_2012     = 4
        } spoolss_DriverOSVersion;
 
        typedef struct {
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c 
b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index a5579c2..c511fd0 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -5609,6 +5609,7 @@ WERROR _spoolss_GetPrinterDriver2(struct pipes_struct *p,
 {
        struct printer_handle *printer;
        WERROR result;
+       uint32_t version = r->in.client_major_version;
 
        int snum;
 
@@ -5633,13 +5634,19 @@ WERROR _spoolss_GetPrinterDriver2(struct pipes_struct 
*p,
                return WERR_BADFID;
        }
 
+       if (r->in.client_major_version == SPOOLSS_DRIVER_VERSION_2012) {
+               DEBUG(3,("_spoolss_GetPrinterDriver2: v4 driver requested, "
+                       "downgrading to v3\n"));
+               version = SPOOLSS_DRIVER_VERSION_200X;
+       }
+
        result = construct_printer_driver_info_level(p->mem_ctx,
                                                     get_session_info_system(),
                                                     p->msg_ctx,
                                                     r->in.level, r->out.info,
                                                     snum, printer->servername,
                                                     r->in.architecture,
-                                                    
r->in.client_major_version);
+                                                    version);
        if (!W_ERROR_IS_OK(result)) {
                TALLOC_FREE(r->out.info);
                return result;


-- 
Samba Shared Repository

Reply via email to