1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

s3-spoolss: use rpccli_spoolss_AddForm in net and rpcclient.

Guenther
This commit is contained in:
Günther Deschner 2009-02-08 00:03:00 +01:00
parent 45f142fe29
commit 5234f5e433
2 changed files with 35 additions and 21 deletions

View File

@ -1642,10 +1642,12 @@ static WERROR cmd_spoolss_addform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
{
POLICY_HND handle;
WERROR werror;
NTSTATUS status;
char *servername = NULL, *printername = NULL;
FORM form;
bool got_handle = False;
union spoolss_AddFormInfo info;
struct spoolss_AddFormInfo1 info1;
/* Parse the command arguments */
if (argc != 3) {
@ -1676,19 +1678,25 @@ static WERROR cmd_spoolss_addform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
/* Dummy up some values for the form data */
form.flags = FORM_USER;
form.size_x = form.size_y = 100;
form.left = 0;
form.top = 10;
form.right = 20;
form.bottom = 30;
info1.flags = FORM_USER;
info1.form_name = argv[2];
info1.size.width = 100;
info1.size.height = 100;
info1.area.left = 0;
info1.area.top = 10;
info1.area.right = 20;
info1.area.bottom = 30;
init_unistr2(&form.name, argv[2], UNI_STR_TERMINATE);
info.info1 = &info1;
/* Add the form */
werror = rpccli_spoolss_addform(cli, mem_ctx, &handle, 1, &form);
status = rpccli_spoolss_AddForm(cli, mem_ctx,
&handle,
1,
info,
&werror);
done:
if (got_handle)

View File

@ -1668,8 +1668,10 @@ NTSTATUS rpc_printer_migrate_forms_internals(struct net_context *c,
for (f = 0; f < num_forms; f++) {
FORM form;
union spoolss_AddFormInfo info;
struct spoolss_AddFormInfo1 info1;
fstring form_name;
NTSTATUS status;
/* only migrate FORM_PRINTER types, according to jerry
FORM_BUILTIN-types are hard-coded in samba */
@ -1685,20 +1687,24 @@ NTSTATUS rpc_printer_migrate_forms_internals(struct net_context *c,
f, form_name, forms[f].flag);
/* is there a more elegant way to do that ? */
form.flags = FORM_PRINTER;
form.size_x = forms[f].width;
form.size_y = forms[f].length;
form.left = forms[f].left;
form.top = forms[f].top;
form.right = forms[f].right;
form.bottom = forms[f].bottom;
info1.flags = FORM_PRINTER;
info1.size.width = forms[f].width;
info1.size.height = forms[f].length;
info1.area.left = forms[f].left;
info1.area.top = forms[f].top;
info1.area.right = forms[f].right;
info1.area.bottom = forms[f].bottom;
info1.form_name = form_name;
init_unistr2(&form.name, form_name, UNI_STR_TERMINATE);
info.info1 = &info1;
/* FIXME: there might be something wrong with samba's
builtin-forms */
result = rpccli_spoolss_addform(pipe_hnd_dst, mem_ctx,
&hnd_dst, 1, &form);
status = rpccli_spoolss_AddForm(pipe_hnd_dst, mem_ctx,
&hnd_dst,
1,
info,
&result);
if (!W_ERROR_IS_OK(result)) {
d_printf("\tAddForm form %d: [%s] refused.\n",
f, form_name);