diff options
author | Günther Deschner <gd@samba.org> | 2009-02-16 23:32:31 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-02-17 03:51:50 +0100 |
commit | 046cb24d0ad76b8e01c9c7d0d0146af9f6576047 (patch) | |
tree | b050d1c0097776eab191ba7670bc6ea453d30d80 /source3 | |
parent | f34f4074f8fea8d5c785aa6bb6fd7f325ac79feb (diff) | |
download | samba-046cb24d0ad76b8e01c9c7d0d0146af9f6576047.tar.gz samba-046cb24d0ad76b8e01c9c7d0d0146af9f6576047.tar.bz2 samba-046cb24d0ad76b8e01c9c7d0d0146af9f6576047.zip |
s3-rpcclient: use rpccli_spoolss_RemoteFindFirstPrinterChangeNotifyEx.
Guenther
Diffstat (limited to 'source3')
-rw-r--r-- | source3/rpcclient/cmd_spoolss.c | 49 |
1 files changed, 29 insertions, 20 deletions
diff --git a/source3/rpcclient/cmd_spoolss.c b/source3/rpcclient/cmd_spoolss.c index b6e8f7dd97..9581b9b4ff 100644 --- a/source3/rpcclient/cmd_spoolss.c +++ b/source3/rpcclient/cmd_spoolss.c @@ -2486,7 +2486,8 @@ static WERROR cmd_spoolss_rffpcnex(struct rpc_pipe_client *cli, POLICY_HND hnd; bool got_hnd = False; WERROR result; - SPOOL_NOTIFY_OPTION option; + NTSTATUS status; + struct spoolss_NotifyOption option; if (argc != 2) { printf("Usage: %s printername\n", argv[0]); @@ -2511,35 +2512,43 @@ static WERROR cmd_spoolss_rffpcnex(struct rpc_pipe_client *cli, /* Create spool options */ - ZERO_STRUCT(option); - option.version = 2; - option.option_type_ptr = 1; - option.count = option.ctr.count = 2; + option.count = 2; - option.ctr.type = TALLOC_ARRAY(mem_ctx, SPOOL_NOTIFY_OPTION_TYPE, 2); - if (option.ctr.type == NULL) { + option.types = talloc_array(mem_ctx, struct spoolss_NotifyOptionType, 2); + if (option.types == NULL) { result = WERR_NOMEM; goto done; } - ZERO_STRUCT(option.ctr.type[0]); - option.ctr.type[0].type = PRINTER_NOTIFY_TYPE; - option.ctr.type[0].count = option.ctr.type[0].count2 = 1; - option.ctr.type[0].fields_ptr = 1; - option.ctr.type[0].fields[0] = PRINTER_NOTIFY_SERVER_NAME; + option.types[0].type = PRINTER_NOTIFY_TYPE; + option.types[0].count = 1; + option.types[0].fields = talloc_array(mem_ctx, enum spoolss_Field, 1); + if (option.types[0].fields == NULL) { + result = WERR_NOMEM; + goto done; + } + option.types[0].fields[0] = PRINTER_NOTIFY_SERVER_NAME; - ZERO_STRUCT(option.ctr.type[1]); - option.ctr.type[1].type = JOB_NOTIFY_TYPE; - option.ctr.type[1].count = option.ctr.type[1].count2 = 1; - option.ctr.type[1].fields_ptr = 1; - option.ctr.type[1].fields[0] = JOB_NOTIFY_PRINTER_NAME; + option.types[1].type = JOB_NOTIFY_TYPE; + option.types[1].count = 1; + option.types[1].fields = talloc_array(mem_ctx, enum spoolss_Field, 1); + if (option.types[1].fields == NULL) { + result = WERR_NOMEM; + goto done; + } + option.types[1].fields[0] = JOB_NOTIFY_PRINTER_NAME; /* Send rffpcnex */ - result = rpccli_spoolss_rffpcnex( - cli, mem_ctx, &hnd, 0, 0, cli->srv_name_slash, 123, &option); - + status = rpccli_spoolss_RemoteFindFirstPrinterChangeNotifyEx(cli, mem_ctx, + &hnd, + 0, + 0, + cli->srv_name_slash, + 123, + &option, + &result); if (!W_ERROR_IS_OK(result)) { printf("Error rffpcnex %s\n", argv[1]); goto done; |