mirror of
https://github.com/samba-team/samba.git
synced 2025-08-02 00:22:11 +03:00
s3-spoolss: add rpccli_spoolss_enumprintprocessordatatypes convenience wrapper.
Guenther
This commit is contained in:
@ -5489,6 +5489,14 @@ WERROR rpccli_spoolss_enumprintprocessors(struct rpc_pipe_client *cli,
|
|||||||
uint32_t offered,
|
uint32_t offered,
|
||||||
uint32_t *count,
|
uint32_t *count,
|
||||||
union spoolss_PrintProcessorInfo **info);
|
union spoolss_PrintProcessorInfo **info);
|
||||||
|
WERROR rpccli_spoolss_enumprintprocessordatatypes(struct rpc_pipe_client *cli,
|
||||||
|
TALLOC_CTX *mem_ctx,
|
||||||
|
const char *servername,
|
||||||
|
const char *print_processor_name,
|
||||||
|
uint32_t level,
|
||||||
|
uint32_t offered,
|
||||||
|
uint32_t *count,
|
||||||
|
union spoolss_PrintProcDataTypesInfo **info);
|
||||||
WERROR rpccli_spoolss_enum_printers(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
|
WERROR rpccli_spoolss_enum_printers(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
|
||||||
char *name, uint32 flags, uint32 level,
|
char *name, uint32 flags, uint32 level,
|
||||||
uint32 *num_printers, PRINTER_INFO_CTR *ctr);
|
uint32 *num_printers, PRINTER_INFO_CTR *ctr);
|
||||||
|
@ -384,6 +384,60 @@ WERROR rpccli_spoolss_enumprintprocessors(struct rpc_pipe_client *cli,
|
|||||||
return werror;
|
return werror;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
convencience wrapper around rpccli_spoolss_EnumPrintProcDataTypes
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
WERROR rpccli_spoolss_enumprintprocessordatatypes(struct rpc_pipe_client *cli,
|
||||||
|
TALLOC_CTX *mem_ctx,
|
||||||
|
const char *servername,
|
||||||
|
const char *print_processor_name,
|
||||||
|
uint32_t level,
|
||||||
|
uint32_t offered,
|
||||||
|
uint32_t *count,
|
||||||
|
union spoolss_PrintProcDataTypesInfo **info)
|
||||||
|
{
|
||||||
|
NTSTATUS status;
|
||||||
|
WERROR werror;
|
||||||
|
uint32_t needed;
|
||||||
|
DATA_BLOB buffer;
|
||||||
|
|
||||||
|
if (offered > 0) {
|
||||||
|
buffer = data_blob_talloc_zero(mem_ctx, offered);
|
||||||
|
W_ERROR_HAVE_NO_MEMORY(buffer.data);
|
||||||
|
}
|
||||||
|
|
||||||
|
status = rpccli_spoolss_EnumPrintProcDataTypes(cli, mem_ctx,
|
||||||
|
servername,
|
||||||
|
print_processor_name,
|
||||||
|
level,
|
||||||
|
(offered > 0) ? &buffer : NULL,
|
||||||
|
offered,
|
||||||
|
count,
|
||||||
|
info,
|
||||||
|
&needed,
|
||||||
|
&werror);
|
||||||
|
|
||||||
|
if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) {
|
||||||
|
offered = needed;
|
||||||
|
buffer = data_blob_talloc_zero(mem_ctx, needed);
|
||||||
|
W_ERROR_HAVE_NO_MEMORY(buffer.data);
|
||||||
|
|
||||||
|
status = rpccli_spoolss_EnumPrintProcDataTypes(cli, mem_ctx,
|
||||||
|
servername,
|
||||||
|
print_processor_name,
|
||||||
|
level,
|
||||||
|
(offered > 0) ? &buffer : NULL,
|
||||||
|
offered,
|
||||||
|
count,
|
||||||
|
info,
|
||||||
|
&needed,
|
||||||
|
&werror);
|
||||||
|
}
|
||||||
|
|
||||||
|
return werror;
|
||||||
|
}
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
Decode various spoolss rpc's and info levels
|
Decode various spoolss rpc's and info levels
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
Reference in New Issue
Block a user