mirror of
https://github.com/samba-team/samba.git
synced 2025-02-02 09:47:23 +03:00
s3-spoolss: add rpccli_spoolss_enumprinterdrivers convenience wrapper.
Guenther
This commit is contained in:
parent
e605e4503c
commit
5f46554228
@ -5515,6 +5515,14 @@ WERROR rpccli_spoolss_enumjobs(struct rpc_pipe_client *cli,
|
||||
uint32_t offered,
|
||||
uint32_t *count,
|
||||
union spoolss_JobInfo **info);
|
||||
WERROR rpccli_spoolss_enumprinterdrivers(struct rpc_pipe_client *cli,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
const char *server,
|
||||
const char *environment,
|
||||
uint32_t level,
|
||||
uint32_t offered,
|
||||
uint32_t *count,
|
||||
union spoolss_DriverInfo **info);
|
||||
WERROR rpccli_spoolss_enum_printers(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
|
||||
char *name, uint32 flags, uint32 level,
|
||||
uint32 *num_printers, PRINTER_INFO_CTR *ctr);
|
||||
|
@ -597,6 +597,60 @@ WERROR rpccli_spoolss_enumjobs(struct rpc_pipe_client *cli,
|
||||
return werror;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
convencience wrapper around rpccli_spoolss_EnumPrinterDrivers
|
||||
**********************************************************************/
|
||||
|
||||
WERROR rpccli_spoolss_enumprinterdrivers(struct rpc_pipe_client *cli,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
const char *server,
|
||||
const char *environment,
|
||||
uint32_t level,
|
||||
uint32_t offered,
|
||||
uint32_t *count,
|
||||
union spoolss_DriverInfo **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_EnumPrinterDrivers(cli, mem_ctx,
|
||||
server,
|
||||
environment,
|
||||
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_EnumPrinterDrivers(cli, mem_ctx,
|
||||
server,
|
||||
environment,
|
||||
level,
|
||||
(offered > 0) ? &buffer : NULL,
|
||||
offered,
|
||||
count,
|
||||
info,
|
||||
&needed,
|
||||
&werror);
|
||||
}
|
||||
|
||||
return werror;
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
Decode various spoolss rpc's and info levels
|
||||
|
Loading…
x
Reference in New Issue
Block a user