]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3-spoolss: fix _spoolss_SetPrinterData{Ex} after IDL change.
authorGünther Deschner <gd@samba.org>
Thu, 4 Mar 2010 16:00:34 +0000 (17:00 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 5 Mar 2010 14:17:59 +0000 (15:17 +0100)
Guenther

source3/rpc_server/srv_spoolss_nt.c

index c7f66bc279f4580503781a92c8e80bef1b1882af..a756eb64ccd98ca968269734c6f3f6c07ac289f5 100644 (file)
@@ -7837,7 +7837,7 @@ WERROR _spoolss_SetPrinterData(pipes_struct *p,
        r2.in.value_name        = r->in.value_name;
        r2.in.type              = r->in.type;
        r2.in.data              = r->in.data;
-       r2.in._offered          = r->in._offered;
+       r2.in.offered           = r->in.offered;
 
        return _spoolss_SetPrinterDataEx(p, &r2);
 }
@@ -8770,7 +8770,6 @@ WERROR _spoolss_SetPrinterDataEx(pipes_struct *p,
        WERROR                  result = WERR_OK;
        Printer_entry           *Printer = find_printer_index_by_hnd(p, r->in.handle);
        char                    *oid_string;
-       DATA_BLOB blob;
 
        DEBUG(4,("_spoolss_SetPrinterDataEx\n"));
 
@@ -8820,12 +8819,6 @@ WERROR _spoolss_SetPrinterDataEx(pipes_struct *p,
                oid_string++;
        }
 
-       result = push_spoolss_PrinterData(p->mem_ctx, &blob,
-                                         r->in.type, &r->in.data);
-       if (!W_ERROR_IS_OK(result)) {
-               goto done;
-       }
-
        /*
         * When client side code sets a magic printer data key, detect it and save
         * the current printer data and the magic key's data (its the DEVMODE) for
@@ -8833,7 +8826,7 @@ WERROR _spoolss_SetPrinterDataEx(pipes_struct *p,
         */
        if ((r->in.type == REG_BINARY) && strequal(r->in.value_name, PHANTOM_DEVMODE_KEY)) {
                /* Set devmode and printer initialization info */
-               result = save_driver_init(printer, 2, blob.data, blob.length);
+               result = save_driver_init(printer, 2, r->in.data, r->in.offered);
 
                srv_spoolss_reset_printerdata(printer->info_2->drivername);
 
@@ -8843,7 +8836,7 @@ WERROR _spoolss_SetPrinterDataEx(pipes_struct *p,
        /* save the registry data */
 
        result = set_printer_dataex(printer, r->in.key_name, r->in.value_name,
-                                   r->in.type, blob.data, blob.length);
+                                   r->in.type, r->in.data, r->in.offered);
 
        if (W_ERROR_IS_OK(result)) {
                /* save the OID if one was specified */