#include "printing/nt_printing_migrate.h"
#include "librpc/gen_ndr/ndr_ntprinting.h"
-#include "librpc/gen_ndr/cli_spoolss.h"
+#include "librpc/gen_ndr/ndr_spoolss_c.h"
#include "rpc_client/cli_spoolss.h"
#include "librpc/gen_ndr/ndr_security.h"
#include "rpc_server/rpc_ncacn_np.h"
unsigned char *data,
size_t length)
{
+ struct dcerpc_binding_handle *b = pipe_hnd->binding_handle;
struct spoolss_DevmodeContainer devmode_ctr;
struct policy_handle hnd;
enum ndr_err_code ndr_err;
ZERO_STRUCT(devmode_ctr);
- status = rpccli_spoolss_OpenPrinter(pipe_hnd,
+ status = dcerpc_spoolss_OpenPrinter(b,
mem_ctx,
srv_name_slash,
NULL,
&hnd,
&result);
if (!NT_STATUS_IS_OK(status)) {
- if (!W_ERROR_IS_OK(result)) {
- status = werror_to_ntstatus(result);
- }
- DEBUG(2, ("OpenPrinter(%s) failed: %s\n",
+ DEBUG(2, ("dcerpc_spoolss_OpenPrinter(%s) failed: %s\n",
srv_name_slash, nt_errstr(status)));
return status;
}
+ if (!W_ERROR_IS_OK(result)) {
+ DEBUG(2, ("OpenPrinter(%s) failed: %s\n",
+ srv_name_slash, win_errstr(result)));
+ status = werror_to_ntstatus(result);
+ return status;
+ }
f1.form_name = key_name;
f1.flags = r.flag;
f.info1 = &f1;
- status = rpccli_spoolss_AddForm(pipe_hnd,
+ status = dcerpc_spoolss_AddForm(b,
mem_ctx,
&hnd,
1,
f,
&result);
if (!NT_STATUS_IS_OK(status)) {
- DEBUG(2, ("AddForm(%s) refused -- %s.\n",
+ DEBUG(2, ("dcerpc_spoolss_AddForm(%s) refused -- %s.\n",
f.info1->form_name, nt_errstr(status)));
+ } else if (!W_ERROR_IS_OK(result)) {
+ DEBUG(2, ("AddForm(%s) refused -- %s.\n",
+ f.info1->form_name, win_errstr(result)));
+ status = werror_to_ntstatus(result);
}
- rpccli_spoolss_ClosePrinter(pipe_hnd, mem_ctx, &hnd, NULL);
+ dcerpc_spoolss_ClosePrinter(b, mem_ctx, &hnd, &result);
return status;
}
unsigned char *data,
size_t length)
{
+ struct dcerpc_binding_handle *b = pipe_hnd->binding_handle;
const char *srv_name_slash;
enum ndr_err_code ndr_err;
struct ntprinting_driver r;
d.level = 3;
d.info.info3 = &d3;
- status = rpccli_spoolss_AddPrinterDriver(pipe_hnd,
+ status = dcerpc_spoolss_AddPrinterDriver(b,
mem_ctx,
srv_name_slash,
&d,
&result);
if (!NT_STATUS_IS_OK(status)) {
- if (!W_ERROR_IS_OK(result)) {
- status = werror_to_ntstatus(result);
- }
- DEBUG(2, ("AddPrinterDriver(%s) refused -- %s.\n",
+ DEBUG(2, ("dcerpc_spoolss_AddPrinterDriver(%s) refused -- %s.\n",
d3.driver_name, nt_errstr(status)));
+ } else if (!W_ERROR_IS_OK(result)) {
+ DEBUG(2, ("AddPrinterDriver(%s) refused -- %s.\n",
+ d3.driver_name, win_errstr(result)));
+ status = werror_to_ntstatus(result);
}
return status;
unsigned char *data,
size_t length)
{
+ struct dcerpc_binding_handle *b = pipe_hnd->binding_handle;
struct policy_handle hnd;
enum ndr_err_code ndr_err;
struct ntprinting_printer r;
ZERO_STRUCT(devmode_ctr);
- status = rpccli_spoolss_OpenPrinter(pipe_hnd,
+ status = dcerpc_spoolss_OpenPrinter(b,
mem_ctx,
key_name,
NULL,
&hnd,
&result);
if (!NT_STATUS_IS_OK(status)) {
- if (!W_ERROR_IS_OK(result)) {
- status = werror_to_ntstatus(result);
- }
+ DEBUG(2, ("dcerpc_spoolss_OpenPrinter(%s) failed: %s\n",
+ key_name, nt_errstr(status)));
+ return status;
+ }
+ if (!W_ERROR_IS_OK(result)) {
DEBUG(2, ("OpenPrinter(%s) failed: %s\n",
key_name, win_errstr(result)));
+ status = werror_to_ntstatus(result);
return status;
}
info_ctr.info.info2 = &info2;
info_ctr.level = 2;
- status = rpccli_spoolss_SetPrinter(pipe_hnd,
+ status = dcerpc_spoolss_SetPrinter(b,
mem_ctx,
&hnd,
&info_ctr,
0, /* command */
&result);
if (!NT_STATUS_IS_OK(status)) {
- DEBUG(2, ("SetPrinter(%s) level 2 refused -- %s.\n",
+ DEBUG(2, ("dcerpc_spoolss_SetPrinter(%s) level 2 refused -- %s.\n",
key_name, nt_errstr(status)));
goto done;
}
+ if (!W_ERROR_IS_OK(result)) {
+ DEBUG(2, ("SetPrinter(%s) level 2 refused -- %s.\n",
+ key_name, win_errstr(result)));
+ status = werror_to_ntstatus(result);
+ goto done;
+ }
/* migrate printerdata */
for (j = 0; j < r.count; j++) {
valuename++;
}
- status = rpccli_spoolss_SetPrinterDataEx(pipe_hnd,
+ status = dcerpc_spoolss_SetPrinterDataEx(b,
mem_ctx,
&hnd,
keyname,
r.printer_data[j].data.length,
&result);
if (!NT_STATUS_IS_OK(status)) {
- DEBUG(2, ("SetPrinterDataEx: printer [%s], keyname [%s], "
+ DEBUG(2, ("dcerpc_spoolss_SetPrinterDataEx: "
+ "printer [%s], keyname [%s], "
"valuename [%s] refused -- %s.\n",
key_name, keyname, valuename,
nt_errstr(status)));
break;
}
+ if (!W_ERROR_IS_OK(result)) {
+ DEBUG(2, ("SetPrinterDataEx: printer [%s], keyname [%s], "
+ "valuename [%s] refused -- %s.\n",
+ key_name, keyname, valuename,
+ win_errstr(result)));
+ status = werror_to_ntstatus(result);
+ break;
+ }
}
done:
- rpccli_spoolss_ClosePrinter(pipe_hnd, mem_ctx, &hnd, NULL);
+ dcerpc_spoolss_ClosePrinter(b, mem_ctx, &hnd, &result);
return status;
}
unsigned char *data,
size_t length)
{
+ struct dcerpc_binding_handle *b = pipe_hnd->binding_handle;
struct policy_handle hnd;
enum ndr_err_code ndr_err;
struct sec_desc_buf secdesc_ctr;
ZERO_STRUCT(devmode_ctr);
- status = rpccli_spoolss_OpenPrinter(pipe_hnd,
+ status = dcerpc_spoolss_OpenPrinter(b,
mem_ctx,
key_name,
NULL,
&hnd,
&result);
if (!NT_STATUS_IS_OK(status)) {
- if (W_ERROR_EQUAL(WERR_INVALID_PRINTER_NAME, result)) {
- DEBUG(3, ("Ignoring missing printer %s\n", key_name));
- return NT_STATUS_OK;
- }
- if (!W_ERROR_IS_OK(result)) {
- status = werror_to_ntstatus(result);
- }
- DEBUG(2, ("OpenPrinter(%s) failed: %s\n",
+ DEBUG(2, ("dcerpc_spoolss_OpenPrinter(%s) failed: %s\n",
key_name, nt_errstr(status)));
return status;
}
+ if (W_ERROR_EQUAL(WERR_INVALID_PRINTER_NAME, result)) {
+ DEBUG(3, ("Ignoring missing printer %s\n", key_name));
+ return NT_STATUS_OK;
+ }
+ if (!W_ERROR_IS_OK(result)) {
+ DEBUG(2, ("OpenPrinter(%s) failed: %s\n",
+ key_name, win_errstr(result)));
+ status = werror_to_ntstatus(result);
+ return status;
+ }
ZERO_STRUCT(devmode_ctr);
info_ctr.info.info3 = &info3;
info_ctr.level = 3;
- status = rpccli_spoolss_SetPrinter(pipe_hnd,
+ status = dcerpc_spoolss_SetPrinter(b,
mem_ctx,
&hnd,
&info_ctr,
0, /* command */
&result);
if (!NT_STATUS_IS_OK(status)) {
- DEBUG(2, ("SetPrinter(%s) level 3 refused -- %s.\n",
+ DEBUG(2, ("dcerpc_spoolss_SetPrinter(%s) level 3 refused -- %s.\n",
key_name, nt_errstr(status)));
+ } else if (!W_ERROR_IS_OK(result)) {
+ DEBUG(2, ("SetPrinter(%s) level 3 refused -- %s.\n",
+ key_name, win_errstr(result)));
+ status = werror_to_ntstatus(result);
}
- rpccli_spoolss_ClosePrinter(pipe_hnd, mem_ctx, &hnd, NULL);
+ dcerpc_spoolss_ClosePrinter(b, mem_ctx, &hnd, &result);
return status;
}