diff options
author | Günther Deschner <gd@samba.org> | 2009-03-14 01:26:27 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-03-17 11:49:08 +0100 |
commit | 08d170abc12b72e027b80f22b11213346fb6cf7e (patch) | |
tree | 0fe78a261f111b5c330f7581e93340552b8df89e | |
parent | 754d136c32372cb9dd604375b98379d9696fb48f (diff) | |
download | samba-08d170abc12b72e027b80f22b11213346fb6cf7e.tar.gz samba-08d170abc12b72e027b80f22b11213346fb6cf7e.tar.bz2 samba-08d170abc12b72e027b80f22b11213346fb6cf7e.zip |
s3-spoolss: add rpccli_spoolss_getprinterdata convenience wrapper.
Guenther
-rw-r--r-- | source3/include/proto.h | 9 | ||||
-rw-r--r-- | source3/rpc_client/cli_spoolss.c | 41 |
2 files changed, 50 insertions, 0 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index f2929e8296..6c8e4cba8c 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -5533,9 +5533,18 @@ WERROR rpccli_spoolss_enumprinters(struct rpc_pipe_client *cli, uint32_t offered, uint32_t *count, union spoolss_PrinterInfo **info); +WERROR rpccli_spoolss_getprinterdata(struct rpc_pipe_client *cli, + TALLOC_CTX *mem_ctx, + struct policy_handle *handle, + const char *value_name, + uint32_t offered, + enum winreg_Type *type, + union spoolss_PrinterData *data); +#if 0 WERROR rpccli_spoolss_getprinterdata(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, POLICY_HND *hnd, const char *valuename, REGISTRY_VALUE *value); +#endif WERROR rpccli_spoolss_setprinterdata(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, POLICY_HND *hnd, REGISTRY_VALUE *value); WERROR rpccli_spoolss_enumprinterdata(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, diff --git a/source3/rpc_client/cli_spoolss.c b/source3/rpc_client/cli_spoolss.c index 76614c67eb..f9cb48195c 100644 --- a/source3/rpc_client/cli_spoolss.c +++ b/source3/rpc_client/cli_spoolss.c @@ -705,6 +705,47 @@ WERROR rpccli_spoolss_enumprinters(struct rpc_pipe_client *cli, return werror; } +/********************************************************************** + convencience wrapper around rpccli_spoolss_GetPrinterData +**********************************************************************/ + +WERROR rpccli_spoolss_getprinterdata(struct rpc_pipe_client *cli, + TALLOC_CTX *mem_ctx, + struct policy_handle *handle, + const char *value_name, + uint32_t offered, + enum winreg_Type *type, + union spoolss_PrinterData *data) +{ + NTSTATUS status; + WERROR werror; + uint32_t needed; + + status = rpccli_spoolss_GetPrinterData(cli, mem_ctx, + handle, + value_name, + offered, + type, + data, + &needed, + &werror); + + if (W_ERROR_EQUAL(werror, WERR_MORE_DATA)) { + offered = needed; + + status = rpccli_spoolss_GetPrinterData(cli, mem_ctx, + handle, + value_name, + offered, + type, + data, + &needed, + &werror); + } + + return werror; +} + /********************************************************************* Decode various spoolss rpc's and info levels ********************************************************************/ |