mirror of
https://github.com/samba-team/samba.git
synced 2025-02-23 09:57:40 +03:00
Skeleton IDL for SPOOLSS pipe. For this inital version, only OpenPrinterEx
works but without a devicemode. (This used to be commit 35e889cf339f4ed62d4953b4cb5da2f21cf249a2)
This commit is contained in:
parent
7290260c1a
commit
78b7118d1a
@ -195,10 +195,10 @@ LIBCLIUTIL_OBJ = libcli/util/asn1.o \
|
||||
|
||||
LIBRAW_NDR_OBJ = librpc/ndr/ndr.o librpc/ndr/ndr_basic.o librpc/ndr/ndr_sec.o \
|
||||
librpc/ndr/ndr_echo.o librpc/ndr/ndr_misc.o librpc/ndr/ndr_lsa.o \
|
||||
librpc/ndr/ndr_dfs.o
|
||||
librpc/ndr/ndr_dfs.o librpc/ndr/ndr_spoolss.o
|
||||
|
||||
LIBRAW_RPC_OBJ = librpc/rpc/dcerpc.o librpc/rpc/rpc_echo.o librpc/rpc/rpc_lsa.o \
|
||||
librpc/rpc/dcerpc_smb.o librpc/rpc/rpc_dfs.o
|
||||
librpc/rpc/dcerpc_smb.o librpc/rpc/rpc_dfs.o librpc/rpc/rpc_spoolss.o
|
||||
|
||||
LIBRAW_OBJ = libcli/raw/rawfile.o libcli/raw/smb_signing.o \
|
||||
libcli/raw/clisocket.o libcli/raw/clitransport.o \
|
||||
@ -506,7 +506,8 @@ SMBTORTURE_RAW_OBJ = torture/raw/qfsinfo.o torture/raw/qfileinfo.o torture/raw/s
|
||||
torture/raw/chkpath.o torture/raw/unlink.o torture/raw/read.o torture/raw/context.o \
|
||||
torture/raw/write.o torture/raw/lock.o torture/raw/rename.o torture/raw/seek.o
|
||||
|
||||
SMBTORTURE_RPC_OBJ = torture/rpc/lsa.o torture/rpc/echo.o torture/rpc/dfs.o
|
||||
SMBTORTURE_RPC_OBJ = torture/rpc/lsa.o torture/rpc/echo.o torture/rpc/dfs.o \
|
||||
torture/rpc/spoolss.o
|
||||
|
||||
SMBTORTURE_OBJ1 = torture/torture.o torture/torture_util.o torture/nbio.o torture/scanner.o \
|
||||
torture/utable.o torture/denytest.o torture/mangle_test.o \
|
||||
|
520
source4/librpc/idl/spoolss.idl
Normal file
520
source4/librpc/idl/spoolss.idl
Normal file
@ -0,0 +1,520 @@
|
||||
/*
|
||||
spoolss interface definitions
|
||||
*/
|
||||
|
||||
[ uuid(12345678-1234-abcd-ef00-0123456789ab),
|
||||
version(1.0),
|
||||
pointer_default(unique)
|
||||
] interface spoolss
|
||||
{
|
||||
/******************/
|
||||
/* Function: 0x00 */
|
||||
NTSTATUS spoolss_00(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x01 */
|
||||
NTSTATUS spoolss_01(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x02 */
|
||||
NTSTATUS spoolss_02(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x03 */
|
||||
NTSTATUS spoolss_03(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x04 */
|
||||
NTSTATUS spoolss_04(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x05 */
|
||||
NTSTATUS spoolss_05(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x06 */
|
||||
NTSTATUS spoolss_06(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x07 */
|
||||
NTSTATUS spoolss_07(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x08 */
|
||||
NTSTATUS spoolss_08(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x09 */
|
||||
NTSTATUS spoolss_09(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x0a */
|
||||
NTSTATUS spoolss_0a(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x0b */
|
||||
NTSTATUS spoolss_0b(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x0c */
|
||||
NTSTATUS spoolss_0c(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x0d */
|
||||
NTSTATUS spoolss_0d(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x0e */
|
||||
NTSTATUS spoolss_0e(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x0f */
|
||||
NTSTATUS spoolss_0f(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x10 */
|
||||
NTSTATUS spoolss_10(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x11 */
|
||||
NTSTATUS spoolss_11(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x12 */
|
||||
NTSTATUS spoolss_12(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x13 */
|
||||
NTSTATUS spoolss_13(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x14 */
|
||||
NTSTATUS spoolss_14(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x15 */
|
||||
NTSTATUS spoolss_15(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x16 */
|
||||
NTSTATUS spoolss_16(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x17 */
|
||||
NTSTATUS spoolss_17(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x18 */
|
||||
NTSTATUS spoolss_18(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x19 */
|
||||
NTSTATUS spoolss_19(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x1a */
|
||||
NTSTATUS spoolss_1a(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x1b */
|
||||
NTSTATUS spoolss_1b(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x1c */
|
||||
NTSTATUS spoolss_1c(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x1d */
|
||||
NTSTATUS spoolss_1d(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x1e */
|
||||
NTSTATUS spoolss_1e(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x1f */
|
||||
NTSTATUS spoolss_1f(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x20 */
|
||||
NTSTATUS spoolss_20(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x21 */
|
||||
NTSTATUS spoolss_21(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x22 */
|
||||
NTSTATUS spoolss_22(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x23 */
|
||||
NTSTATUS spoolss_23(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x24 */
|
||||
NTSTATUS spoolss_24(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x25 */
|
||||
NTSTATUS spoolss_25(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x26 */
|
||||
NTSTATUS spoolss_26(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x27 */
|
||||
NTSTATUS spoolss_27(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x28 */
|
||||
NTSTATUS spoolss_28(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x29 */
|
||||
NTSTATUS spoolss_29(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x2a */
|
||||
NTSTATUS spoolss_2a(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x2b */
|
||||
NTSTATUS spoolss_2b(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x2c */
|
||||
NTSTATUS spoolss_2c(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x2d */
|
||||
NTSTATUS spoolss_2d(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x2e */
|
||||
NTSTATUS spoolss_2e(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x2f */
|
||||
NTSTATUS spoolss_2f(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x30 */
|
||||
NTSTATUS spoolss_30(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x31 */
|
||||
NTSTATUS spoolss_31(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x32 */
|
||||
NTSTATUS spoolss_32(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x33 */
|
||||
NTSTATUS spoolss_33(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x34 */
|
||||
NTSTATUS spoolss_34(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x35 */
|
||||
NTSTATUS spoolss_35(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x36 */
|
||||
NTSTATUS spoolss_36(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x37 */
|
||||
NTSTATUS spoolss_37(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x38 */
|
||||
NTSTATUS spoolss_38(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x39 */
|
||||
NTSTATUS spoolss_39(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x3a */
|
||||
NTSTATUS spoolss_3a(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x3b */
|
||||
NTSTATUS spoolss_3b(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x3c */
|
||||
NTSTATUS spoolss_3c(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x3d */
|
||||
NTSTATUS spoolss_3d(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x3e */
|
||||
NTSTATUS spoolss_3e(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x3f */
|
||||
NTSTATUS spoolss_3f(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x40 */
|
||||
NTSTATUS spoolss_40(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x41 */
|
||||
NTSTATUS spoolss_41(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x42 */
|
||||
NTSTATUS spoolss_42(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x43 */
|
||||
NTSTATUS spoolss_43(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x44 */
|
||||
NTSTATUS spoolss_44(
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
uint32 foo;
|
||||
} spoolss_Devmode;
|
||||
|
||||
typedef struct {
|
||||
uint32 size;
|
||||
spoolss_Devmode *devmode;
|
||||
} spoolss_DevmodeContainer;
|
||||
|
||||
typedef struct {
|
||||
uint32 size;
|
||||
unistr *client;
|
||||
unistr *user;
|
||||
uint32 build;
|
||||
uint32 major;
|
||||
uint32 minor;
|
||||
uint32 processor;
|
||||
} spoolss_UserLevel1;
|
||||
|
||||
typedef union {
|
||||
case(1) spoolss_UserLevel1 *level1;
|
||||
} spoolss_UserLevel;
|
||||
|
||||
/******************/
|
||||
/* Function: 0x45 */
|
||||
NTSTATUS spoolss_OpenPrinterEx(
|
||||
[in] unistr *printername,
|
||||
[in] unistr *datatype,
|
||||
[in] spoolss_DevmodeContainer devmode_ctr,
|
||||
[in] uint32 access_required,
|
||||
[in] uint32 level,
|
||||
[in,switch_is(level)] spoolss_UserLevel userlevel,
|
||||
[out] policy_handle *handle
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x46 */
|
||||
NTSTATUS spoolss_46(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x47 */
|
||||
NTSTATUS spoolss_47(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x48 */
|
||||
NTSTATUS spoolss_48(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x49 */
|
||||
NTSTATUS spoolss_49(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x4a */
|
||||
NTSTATUS spoolss_4a(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x4b */
|
||||
NTSTATUS spoolss_4b(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x4c */
|
||||
NTSTATUS spoolss_4c(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x4d */
|
||||
NTSTATUS spoolss_4d(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x4e */
|
||||
NTSTATUS spoolss_4e(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x4f */
|
||||
NTSTATUS spoolss_4f(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x50 */
|
||||
NTSTATUS spoolss_50(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x51 */
|
||||
NTSTATUS spoolss_51(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x52 */
|
||||
NTSTATUS spoolss_52(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x53 */
|
||||
NTSTATUS spoolss_53(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x54 */
|
||||
NTSTATUS spoolss_54(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x55 */
|
||||
NTSTATUS spoolss_55(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x56 */
|
||||
NTSTATUS spoolss_56(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x57 */
|
||||
NTSTATUS spoolss_57(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x58 */
|
||||
NTSTATUS spoolss_58(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x59 */
|
||||
NTSTATUS spoolss_59(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x5a */
|
||||
NTSTATUS spoolss_5a(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x5b */
|
||||
NTSTATUS spoolss_5b(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x5c */
|
||||
NTSTATUS spoolss_5c(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x5d */
|
||||
NTSTATUS spoolss_5d(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x5e */
|
||||
NTSTATUS spoolss_5e(
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x5f */
|
||||
NTSTATUS spoolss_5f(
|
||||
);
|
||||
|
||||
}
|
@ -152,3 +152,4 @@ typedef void (*ndr_print_union_fn_t)(struct ndr_print *, const char *, uint16, v
|
||||
#include "librpc/ndr/ndr_echo.h"
|
||||
#include "librpc/ndr/ndr_lsa.h"
|
||||
#include "librpc/ndr/ndr_dfs.h"
|
||||
#include "librpc/ndr/ndr_spoolss.h"
|
||||
|
1415
source4/librpc/ndr/ndr_spoolss.c
Normal file
1415
source4/librpc/ndr/ndr_spoolss.c
Normal file
File diff suppressed because it is too large
Load Diff
1088
source4/librpc/ndr/ndr_spoolss.h
Normal file
1088
source4/librpc/ndr/ndr_spoolss.h
Normal file
File diff suppressed because it is too large
Load Diff
1348
source4/librpc/rpc/rpc_spoolss.c
Normal file
1348
source4/librpc/rpc/rpc_spoolss.c
Normal file
File diff suppressed because it is too large
Load Diff
76
source4/torture/rpc/spoolss.c
Normal file
76
source4/torture/rpc/spoolss.c
Normal file
@ -0,0 +1,76 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
test suite for spoolss rpc operations
|
||||
|
||||
Copyright (C) Tim Potter 2003
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "includes.h"
|
||||
|
||||
static BOOL test_OpenPrinterEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
|
||||
{
|
||||
struct spoolss_OpenPrinterEx r;
|
||||
struct spoolss_UserLevel1 userlevel1;
|
||||
NTSTATUS status;
|
||||
|
||||
r.in.printername = "p";
|
||||
r.in.datatype = NULL;
|
||||
r.in.devmode_ctr.size = 0;
|
||||
r.in.devmode_ctr.devmode = NULL;
|
||||
r.in.access_required = 0x12345678;
|
||||
r.in.level = 1;
|
||||
userlevel1.size = 1234;
|
||||
userlevel1.client = "hello";
|
||||
userlevel1.user = "spottyfoot!";
|
||||
userlevel1.build = 1;
|
||||
userlevel1.major = 2;
|
||||
userlevel1.minor = 3;
|
||||
userlevel1.processor = 4;
|
||||
r.in.userlevel.level1 = &userlevel1;
|
||||
|
||||
status = dcerpc_spoolss_OpenPrinterEx(p, mem_ctx, &r);
|
||||
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("OpenPrinter failed - %s\n", nt_errstr(status));
|
||||
return False;
|
||||
}
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
BOOL torture_rpc_spoolss(int dummy)
|
||||
{
|
||||
NTSTATUS status;
|
||||
struct dcerpc_pipe *p;
|
||||
TALLOC_CTX *mem_ctx;
|
||||
BOOL ret = True;
|
||||
|
||||
mem_ctx = talloc_init("torture_rpc_spoolss");
|
||||
|
||||
status = torture_rpc_connection(&p, "spoolss");
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
return False;
|
||||
}
|
||||
|
||||
if (!test_OpenPrinterEx(p, mem_ctx)) {
|
||||
ret = False;
|
||||
}
|
||||
|
||||
torture_rpc_close(p);
|
||||
|
||||
return ret;
|
||||
}
|
@ -3987,6 +3987,7 @@ static struct {
|
||||
{"RPC-LSA", torture_rpc_lsa, 0},
|
||||
{"RPC-ECHO", torture_rpc_echo, 0},
|
||||
{"RPC-DFS", torture_rpc_dfs, 0},
|
||||
{"RPC-SPOOLSS", torture_rpc_spoolss, 0},
|
||||
{NULL, NULL, 0}};
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user