diff options
author | Günther Deschner <gd@samba.org> | 2010-06-03 16:30:55 +0200 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2010-06-03 16:32:49 +0200 |
commit | 30a9ddccff5b1bd1694a1a9f0e5ceebdee316d79 (patch) | |
tree | a63356c8ccae94fee232e90767dc193802521f62 /source3/utils/net_rpc_printer.c | |
parent | 12d1a3b0a5367b4f920d32e6cb1fcdc2f7d17513 (diff) | |
download | samba-30a9ddccff5b1bd1694a1a9f0e5ceebdee316d79.tar.gz samba-30a9ddccff5b1bd1694a1a9f0e5ceebdee316d79.tar.xz samba-30a9ddccff5b1bd1694a1a9f0e5ceebdee316d79.zip |
s3-spoolss: add and use spoolss_printerinfo2_to_setprinterinfo2().
This fixes some invalid typecasts.
Guenther
Diffstat (limited to 'source3/utils/net_rpc_printer.c')
-rw-r--r-- | source3/utils/net_rpc_printer.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source3/utils/net_rpc_printer.c b/source3/utils/net_rpc_printer.c index 7d8c67fb4d..f98a6239a3 100644 --- a/source3/utils/net_rpc_printer.c +++ b/source3/utils/net_rpc_printer.c @@ -20,6 +20,7 @@ #include "utils/net.h" #include "../librpc/gen_ndr/cli_spoolss.h" #include "rpc_client/cli_spoolss.h" +#include "rpc_client/init_spoolss.h" #include "registry.h" #include "registry/reg_objects.h" @@ -757,6 +758,7 @@ static bool net_spoolss_setprinter(struct rpc_pipe_client *pipe_hnd, WERROR result; NTSTATUS status; struct spoolss_SetPrinterInfoCtr info_ctr; + struct spoolss_SetPrinterInfo2 info2; struct spoolss_DevmodeContainer devmode_ctr; struct sec_desc_buf secdesc_ctr; @@ -776,8 +778,8 @@ static bool net_spoolss_setprinter(struct rpc_pipe_client *pipe_hnd, (void *)&info->info1; break; case 2: - info_ctr.info.info2 = (struct spoolss_SetPrinterInfo2 *) - (void *)&info->info2; + spoolss_printerinfo2_to_setprinterinfo2(&info->info2, &info2); + info_ctr.info.info2 = &info2; break; case 3: info_ctr.info.info3 = (struct spoolss_SetPrinterInfo3 *) @@ -2047,6 +2049,8 @@ NTSTATUS rpc_printer_migrate_printers_internals(struct net_context *c, /* do something for all printers */ for (i = 0; i < num_printers; i++) { + struct spoolss_SetPrinterInfo2 info2; + /* do some initialization */ printername = info_enum[i].info2.printername; sharename = info_enum[i].info2.sharename; @@ -2098,8 +2102,8 @@ NTSTATUS rpc_printer_migrate_printers_internals(struct net_context *c, d_printf(_("creating printer: %s\n"), printername); info_ctr.level = level; - info_ctr.info.info2 = (struct spoolss_SetPrinterInfo2 *) - (void *)&info_src.info2; + spoolss_printerinfo2_to_setprinterinfo2(&info_src.info2, &info2); + info_ctr.info.info2 = &info2; result = rpccli_spoolss_addprinterex(pipe_hnd_dst, mem_ctx, |