*/
#include "includes.h"
-#include "../librpc/gen_ndr/cli_spoolss.h"
+#include "../librpc/gen_ndr/ndr_spoolss_c.h"
#include "rpc_client/cli_spoolss.h"
/**********************************************************************
struct spoolss_DevmodeContainer devmode_ctr;
union spoolss_UserLevel userlevel;
struct spoolss_UserLevel1 level1;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
ZERO_STRUCT(devmode_ctr);
userlevel.level1 = &level1;
- status = rpccli_spoolss_OpenPrinterEx(cli, mem_ctx,
+ status = dcerpc_spoolss_OpenPrinterEx(b, mem_ctx,
printername,
NULL,
devmode_ctr,
handle,
&werror);
- if (!W_ERROR_IS_OK(werror)) {
- return werror;
- }
-
if (!NT_STATUS_IS_OK(status)) {
return ntstatus_to_werror(status);
}
+ if (!W_ERROR_IS_OK(werror)) {
+ return werror;
+ }
+
return WERR_OK;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
if (offered > 0) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
}
- status = rpccli_spoolss_GetPrinterDriver(cli, mem_ctx,
+ status = dcerpc_spoolss_GetPrinterDriver(b, mem_ctx,
handle,
architecture,
level,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
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_GetPrinterDriver(cli, mem_ctx,
+ status = dcerpc_spoolss_GetPrinterDriver(b, mem_ctx,
handle,
architecture,
level,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
if (offered > 0) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
}
- status = rpccli_spoolss_GetPrinterDriver2(cli, mem_ctx,
+ status = dcerpc_spoolss_GetPrinterDriver2(b, mem_ctx,
handle,
architecture,
level,
server_major_version,
server_minor_version,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
+
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_GetPrinterDriver2(cli, mem_ctx,
+ status = dcerpc_spoolss_GetPrinterDriver2(b, mem_ctx,
handle,
architecture,
level,
server_minor_version,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
struct spoolss_UserLevelCtr userlevel_ctr;
struct spoolss_UserLevel1 level1;
struct policy_handle handle;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
ZERO_STRUCT(devmode_ctr);
ZERO_STRUCT(secdesc_ctr);
userlevel_ctr.level = 1;
userlevel_ctr.user_info.level1 = &level1;
- status = rpccli_spoolss_AddPrinterEx(cli, mem_ctx,
+ status = dcerpc_spoolss_AddPrinterEx(b, mem_ctx,
cli->srv_name_slash,
info_ctr,
&devmode_ctr,
&userlevel_ctr,
&handle,
&result);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
+
return result;
}
WERROR werror;
DATA_BLOB buffer;
uint32_t needed;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
if (offered > 0) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
}
- status = rpccli_spoolss_GetPrinter(cli, mem_ctx,
+ status = dcerpc_spoolss_GetPrinter(b, mem_ctx,
handle,
level,
(offered > 0) ? &buffer : NULL,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
- status = rpccli_spoolss_GetPrinter(cli, mem_ctx,
+ status = dcerpc_spoolss_GetPrinter(b, mem_ctx,
handle,
level,
&buffer,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
if (offered > 0) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
}
- status = rpccli_spoolss_GetJob(cli, mem_ctx,
+ status = dcerpc_spoolss_GetJob(b, mem_ctx,
handle,
job_id,
level,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
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_GetJob(cli, mem_ctx,
+ status = dcerpc_spoolss_GetJob(b, mem_ctx,
handle,
job_id,
level,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
if (offered > 0) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
}
- status = rpccli_spoolss_EnumForms(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumForms(b, mem_ctx,
handle,
level,
(offered > 0) ? &buffer : NULL,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
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_EnumForms(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumForms(b, mem_ctx,
handle,
level,
(offered > 0) ? &buffer : NULL,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
if (offered > 0) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
}
- status = rpccli_spoolss_EnumPrintProcessors(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumPrintProcessors(b, mem_ctx,
servername,
environment,
level,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
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_EnumPrintProcessors(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumPrintProcessors(b, mem_ctx,
servername,
environment,
level,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
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,
+ status = dcerpc_spoolss_EnumPrintProcDataTypes(b, mem_ctx,
servername,
print_processor_name,
level,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
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,
+ status = dcerpc_spoolss_EnumPrintProcDataTypes(b, mem_ctx,
servername,
print_processor_name,
level,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
if (offered > 0) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
}
- status = rpccli_spoolss_EnumPorts(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumPorts(b, mem_ctx,
servername,
level,
(offered > 0) ? &buffer : NULL,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
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_EnumPorts(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumPorts(b, mem_ctx,
servername,
level,
(offered > 0) ? &buffer : NULL,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
if (offered > 0) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
}
- status = rpccli_spoolss_EnumMonitors(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumMonitors(b, mem_ctx,
servername,
level,
(offered > 0) ? &buffer : NULL,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
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_EnumMonitors(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumMonitors(b, mem_ctx,
servername,
level,
(offered > 0) ? &buffer : NULL,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
if (offered > 0) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
}
- status = rpccli_spoolss_EnumJobs(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumJobs(b, mem_ctx,
handle,
firstjob,
numjobs,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
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_EnumJobs(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumJobs(b, mem_ctx,
handle,
firstjob,
numjobs,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
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,
+ status = dcerpc_spoolss_EnumPrinterDrivers(b, mem_ctx,
server,
environment,
level,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
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,
+ status = dcerpc_spoolss_EnumPrinterDrivers(b, mem_ctx,
server,
environment,
level,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
DATA_BLOB buffer;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
if (offered > 0) {
buffer = data_blob_talloc_zero(mem_ctx, offered);
W_ERROR_HAVE_NO_MEMORY(buffer.data);
}
- status = rpccli_spoolss_EnumPrinters(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumPrinters(b, mem_ctx,
flags,
server,
level,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
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_EnumPrinters(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumPrinters(b, mem_ctx,
flags,
server,
level,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}
WERROR werror;
uint32_t needed;
uint8_t *data;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
data = talloc_zero_array(mem_ctx, uint8_t, offered);
W_ERROR_HAVE_NO_MEMORY(data);
- status = rpccli_spoolss_GetPrinterData(cli, mem_ctx,
+ status = dcerpc_spoolss_GetPrinterData(b, mem_ctx,
handle,
value_name,
type,
offered,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
if (W_ERROR_EQUAL(werror, WERR_MORE_DATA)) {
offered = needed;
data = talloc_zero_array(mem_ctx, uint8_t, offered);
W_ERROR_HAVE_NO_MEMORY(data);
- status = rpccli_spoolss_GetPrinterData(cli, mem_ctx,
+ status = dcerpc_spoolss_GetPrinterData(b, mem_ctx,
handle,
value_name,
type,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
*data_p = data;
*needed_p = needed;
uint32_t needed;
union spoolss_KeyNames _key_buffer;
uint32_t _ndr_size;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
- status = rpccli_spoolss_EnumPrinterKey(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumPrinterKey(b, mem_ctx,
handle,
key_name,
&_ndr_size,
offered,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
if (W_ERROR_EQUAL(werror, WERR_MORE_DATA)) {
offered = needed;
- status = rpccli_spoolss_EnumPrinterKey(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumPrinterKey(b, mem_ctx,
handle,
key_name,
&_ndr_size,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
*key_buffer = _key_buffer.string_array;
NTSTATUS status;
WERROR werror;
uint32_t needed;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
- status = rpccli_spoolss_EnumPrinterDataEx(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumPrinterDataEx(b, mem_ctx,
handle,
key_name,
offered,
info,
&needed,
&werror);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
if (W_ERROR_EQUAL(werror, WERR_MORE_DATA)) {
offered = needed;
- status = rpccli_spoolss_EnumPrinterDataEx(cli, mem_ctx,
+ status = dcerpc_spoolss_EnumPrinterDataEx(b, mem_ctx,
handle,
key_name,
offered,
&needed,
&werror);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
return werror;
}