diff options
author | Tim Potter <tpot@samba.org> | 2003-11-27 06:15:06 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2003-11-27 06:15:06 +0000 |
commit | 4884a97f3b4564fa367598453d7ebc2b24ba6708 (patch) | |
tree | 315e925664bc2b1eeee78864a2bf031fbebb5cd7 /source4 | |
parent | ab3d728b7e7b1f3aa878ed5601a45ba08a08eb1f (diff) | |
download | samba-4884a97f3b4564fa367598453d7ebc2b24ba6708.tar.gz samba-4884a97f3b4564fa367598453d7ebc2b24ba6708.tar.bz2 samba-4884a97f3b4564fa367598453d7ebc2b24ba6708.zip |
Implemented AddForm RPC. The mystery of the useless_ptr has been
solved. It was a pointer in a union member.
RPC-SPOOLSS tests a bit messy and could do with a cleanup.
(This used to be commit cf8cd4485261e861b16b98fb918758ff11282f1d)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/idl/spoolss.idl | 20 | ||||
-rw-r--r-- | source4/torture/rpc/spoolss.c | 20 |
2 files changed, 39 insertions, 1 deletions
diff --git a/source4/librpc/idl/spoolss.idl b/source4/librpc/idl/spoolss.idl index 2c318ce4a1..593ea3f202 100644 --- a/source4/librpc/idl/spoolss.idl +++ b/source4/librpc/idl/spoolss.idl @@ -304,9 +304,27 @@ [in,out,ref] policy_handle *handle ); + typedef struct { + uint32 flags; + [relative] unistr *name; + uint32 width; + uint32 length; + uint32 left; + uint32 top; + uint32 right; + uint32 bottom; + } spoolss_AddFormInfo1; + + typedef union { + [case(1)] spoolss_AddFormInfo1 *info1; + } spoolss_AddFormInfo; + /******************/ /* Function: 0x1e */ - WERROR spoolss_1e( + WERROR spoolss_AddForm( + [in,ref] policy_handle *handle, + [in] uint32 level, + [in,switch_is(level)] spoolss_AddFormInfo info ); /******************/ diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c index 6913290d1a..268288880c 100644 --- a/source4/torture/rpc/spoolss.c +++ b/source4/torture/rpc/spoolss.c @@ -122,6 +122,26 @@ BOOL test_GetForm(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, printf("No form info returned"); return False; } + + { + struct spoolss_AddForm af; + struct spoolss_AddFormInfo1 form; + + af.in.handle = handle; + af.in.level = 1; + form.flags = 2; + form.name = "testform3"; + form.width = r.out.info->info1.width; + form.length = r.out.info->info1.length; + form.left = r.out.info->info1.left; + form.top = r.out.info->info1.top; + form.right = r.out.info->info1.right; + form.bottom = r.out.info->info1.bottom; + af.in.info.info1 = &form; + + status = dcerpc_spoolss_AddForm( + p, mem_ctx, &af); + } } return True; |