s3-net: fix net after spoolss_SetPrinterData{Ex} IDL change.
authorGünther Deschner <gd@samba.org>
Thu, 4 Mar 2010 14:34:22 +0000 (15:34 +0100)
committerKarolin Seeger <kseeger@samba.org>
Thu, 11 Mar 2010 09:29:53 +0000 (10:29 +0100)
Guenther
(cherry picked from commit 37ca9288d2631b48a8eb50c01d6c0cc462d8ee31)

source3/utils/net_rpc_printer.c

index d1d38e8e00f46dd0c43ff6834939fbbc28641303..20770835f7822947d0d9d796a228bb081f254e67 100644 (file)
@@ -832,7 +832,8 @@ static bool net_spoolss_setprinterdata(struct rpc_pipe_client *pipe_hnd,
                                       struct policy_handle *hnd,
                                       const char *value_name,
                                       enum winreg_Type type,
-                                      union spoolss_PrinterData data)
+                                      uint8_t *data,
+                                      uint32_t offered)
 {
        WERROR result;
        NTSTATUS status;
@@ -843,7 +844,7 @@ static bool net_spoolss_setprinterdata(struct rpc_pipe_client *pipe_hnd,
                                               value_name,
                                               type,
                                               data,
-                                              0, /* autocalculated */
+                                              offered,
                                               &result);
 
        if (!W_ERROR_IS_OK(result)) {
@@ -910,15 +911,6 @@ static bool net_spoolss_setprinterdataex(struct rpc_pipe_client *pipe_hnd,
 {
        WERROR result;
        NTSTATUS status;
-       union spoolss_PrinterData data;
-       DATA_BLOB blob;
-
-       blob = data_blob_const(value->data_p, value->size);
-
-       result = pull_spoolss_PrinterData(mem_ctx, &blob, &data, value->type);
-       if (!W_ERROR_IS_OK(result)) {
-               return false;
-       }
 
        /* setprinterdataex call */
        status = rpccli_spoolss_SetPrinterDataEx(pipe_hnd, mem_ctx,
@@ -926,8 +918,8 @@ static bool net_spoolss_setprinterdataex(struct rpc_pipe_client *pipe_hnd,
                                                 keyname,
                                                 value->valuename,
                                                 value->type,
-                                                data,
-                                                0,
+                                                value->data_p,
+                                                value->size,
                                                 &result);
 
        if (!W_ERROR_IS_OK(result)) {
@@ -2359,8 +2351,6 @@ NTSTATUS rpc_printer_migrate_settings_internals(struct net_context *c,
                        if (NT_STATUS_IS_OK(nt_status) && W_ERROR_IS_OK(result)) {
 
                                struct regval_blob v;
-                               DATA_BLOB blob;
-                               union spoolss_PrinterData printer_data;
 
                                /* display_value */
                                if (c->opt_verbose) {
@@ -2371,18 +2361,10 @@ NTSTATUS rpc_printer_migrate_settings_internals(struct net_context *c,
                                        display_reg_value(SPOOL_PRINTERDATA_KEY, v);
                                }
 
-                               result = pull_spoolss_PrinterData(mem_ctx,
-                                                                 &blob,
-                                                                 &printer_data,
-                                                                 type);
-                               if (!W_ERROR_IS_OK(result)) {
-                                       goto done;
-                               }
-
                                /* set_value */
                                if (!net_spoolss_setprinterdata(pipe_hnd_dst, mem_ctx,
                                                                &hnd_dst, value_name,
-                                                               type, printer_data))
+                                                               type, buffer, data_offered))
                                        goto done;
 
                                DEBUGADD(1,("\tSetPrinterData of [%s] succeeded\n",