[SCM] Samba Shared Repository - branch master updated
David Disseldorp
ddiss at samba.org
Mon May 20 12:36:02 MDT 2013
The branch, master has been updated
via f80d56a s4-torture: No need to disable rpc.spoolss.win test when compiled with MIT kerberos.
via 8b7788c selftest: mark the spoolss add print processor tests as knownfail for now.
via 00ee6a6 s4-torture: add simple tests for spoolss_{Add|Delete}PrintProcessor.
via fdf9474 doserr: add mapping for WERR_PRINT_PROCESSOR_ALREADY_INSTALLED.
via 9744bf5 spoolss: fill in IDL for spoolss_DeletePrintProcessor.
via e8797a3 s4-torture: also deal with "Microsoft XPS Document Writer v4" as default driver.
via cc153fe s4-torture: add ndr test for spoolss_RpcSetJobNamedProperty.
via c568a2e s4-torture: add ndr test for spoolss_GetCorePrinterDrivers.
via c51866e s4-torture: add simple test for spoolss_RpcSendRecvBidiData.
via aa1e5f2 s4-torture: add test for spoolss_RpcEnumJobNamedProperties.
via 3d567f6 spoolss: add spoolss_MonitorContainer IDL.
via 1aafc84 spoolss: make RPC_PrintNamedProperty public
via cc38511 spoolss: fill in IDL for JobNamedProperty calls.
via ec29957 spoolss: make more container objects public for iremotewinspool.
via 5a5ed68 spoolss: add idl for spoolss_RpcSendRecvBidiData.
via b072bb7 s4-torture: add missing NTSTATUS checks in test_AddJob().
via 69d9e3e spoolss: add [ms_union] to spoolss.idl where appropriate.
via 229108e spoolss: fix string types in spoolss_JTEXP.
via 393ad20 spoolss: Fix two size elements in the devmode private spoolss_JTEXP struct.
from d7708fd talloc: Fix a typo
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit f80d56a1a0d62c5a1cdbe78ec3214b9f53e28946
Author: Günther Deschner <gd at samba.org>
Date: Fri May 17 11:23:22 2013 +0200
s4-torture: No need to disable rpc.spoolss.win test when compiled with MIT kerberos.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Autobuild-User(master): David Disseldorp <ddiss at samba.org>
Autobuild-Date(master): Mon May 20 20:35:33 CEST 2013 on sn-devel-104
commit 8b7788c5d8ecbac3b8a41cdbb4fec7f0e73a9b76
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 1 14:53:12 2013 +0100
selftest: mark the spoolss add print processor tests as knownfail for now.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit 00ee6a648b6290d6d3ddcb35fe5aa4c797222684
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 1 14:07:50 2013 +0100
s4-torture: add simple tests for spoolss_{Add|Delete}PrintProcessor.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit fdf94747599e1461873fb2a5466f1e55d904333f
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 1 14:07:07 2013 +0100
doserr: add mapping for WERR_PRINT_PROCESSOR_ALREADY_INSTALLED.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit 9744bf519b1fcdab59ba7d55b2b664a6b44b30bd
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 1 02:34:11 2013 +0100
spoolss: fill in IDL for spoolss_DeletePrintProcessor.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit e8797a3ecc03cbbdbc51c3952ac72fd663d5849c
Author: Günther Deschner <gd at samba.org>
Date: Thu Jan 31 22:06:20 2013 +0100
s4-torture: also deal with "Microsoft XPS Document Writer v4" as default driver.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit cc153fe86f780d4aefe40999064b294b612e92d6
Author: Günther Deschner <gd at samba.org>
Date: Thu Jan 31 14:56:17 2013 +0100
s4-torture: add ndr test for spoolss_RpcSetJobNamedProperty.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit c568a2e5c58d01fdd27156e84b361e49c4666fb1
Author: Günther Deschner <gd at samba.org>
Date: Tue Jan 22 10:17:27 2013 +0100
s4-torture: add ndr test for spoolss_GetCorePrinterDrivers.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit c51866eadf6159a6fa76af28be3b9a724ed28b46
Author: Günther Deschner <gd at samba.org>
Date: Thu Jan 31 20:44:54 2013 +0100
s4-torture: add simple test for spoolss_RpcSendRecvBidiData.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit aa1e5f29af2a4560eecaac08ed62c2e63d3c8504
Author: Günther Deschner <gd at samba.org>
Date: Mon Jan 21 22:09:22 2013 +0100
s4-torture: add test for spoolss_RpcEnumJobNamedProperties.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit 3d567f6a962a59cb69b702e7ed2c968246c26566
Author: Günther Deschner <gd at samba.org>
Date: Sun Feb 24 14:06:59 2013 +0100
spoolss: add spoolss_MonitorContainer IDL.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit 1aafc844a721746b4feddbd2d547463a43821a2f
Author: Günther Deschner <gd at samba.org>
Date: Thu Jan 24 23:31:19 2013 +0100
spoolss: make RPC_PrintNamedProperty public
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit cc38511903dbf34eeb358759f00341f60688acdb
Author: Günther Deschner <gd at samba.org>
Date: Mon Jan 21 21:37:12 2013 +0100
spoolss: fill in IDL for JobNamedProperty calls.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit ec29957e884d345009edac18ad362ba91de39f9c
Author: Günther Deschner <gd at samba.org>
Date: Sat Jan 19 00:20:42 2013 +0100
spoolss: make more container objects public for iremotewinspool.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit 5a5ed68d0a92b36ddad9160deaf58314c13b2b49
Author: Günther Deschner <gd at samba.org>
Date: Sat Jan 19 00:47:42 2013 +0100
spoolss: add idl for spoolss_RpcSendRecvBidiData.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit b072bb76dbdd96ee676c2bfbbffe58a187ef25ac
Author: Günther Deschner <gd at samba.org>
Date: Tue Feb 5 16:10:34 2013 +0100
s4-torture: add missing NTSTATUS checks in test_AddJob().
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit 69d9e3ef870fdd643bdc6fb4c893fa26d06fb2cf
Author: Günther Deschner <gd at samba.org>
Date: Wed Jan 30 20:05:51 2013 +0100
spoolss: add [ms_union] to spoolss.idl where appropriate.
Normally we would activate [ms_union] for the entire interface but given the
fact we use this IDL file also for custom-marshalled structures we would
generate union arm alignment also for the custom-marshalled unions where they
are inappropriate. Thus, only enable [ms_union] only for unions that are part of
the MS-RPRN IDL.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit 229108e26645e121fa5ec06911f573dce8198c07
Author: Günther Deschner <gd at samba.org>
Date: Wed Jan 30 15:55:18 2013 +0100
spoolss: fix string types in spoolss_JTEXP.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
commit 393ad20577c7fa66928ecb34bc8b323feb881ea5
Author: Günther Deschner <gd at samba.org>
Date: Tue Jan 29 21:57:58 2013 +0100
spoolss: Fix two size elements in the devmode private spoolss_JTEXP struct.
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: David Disseldorp <ddiss at samba.org>
-----------------------------------------------------------------------
Summary of changes:
libcli/util/doserr.c | 1 +
librpc/idl/spoolss.idl | 211 +++++++++++--
selftest/knownfail | 1 +
source3/rpc_server/spoolss/srv_spoolss_nt.c | 6 +-
source4/rpc_server/spoolss/dcesrv_spoolss.c | 6 +-
source4/torture/ndr/spoolss.c | 73 +++++
source4/torture/rpc/rpc.c | 2 +-
source4/torture/rpc/spoolss.c | 453 ++++++++++++++++++++++++++-
source4/torture/rpc/spoolss_win.c | 3 -
source4/torture/wscript_build | 4 +-
10 files changed, 714 insertions(+), 46 deletions(-)
Changeset truncated at 500 lines:
diff --git a/libcli/util/doserr.c b/libcli/util/doserr.c
index a0c152d..f16db42 100644
--- a/libcli/util/doserr.c
+++ b/libcli/util/doserr.c
@@ -309,6 +309,7 @@ static const struct werror_code_struct dos_errs[] =
{ "WERR_PASSWORD_RESTRICTION", WERR_PASSWORD_RESTRICTION },
{ "WERR_WRONG_PASSWORD", WERR_WRONG_PASSWORD },
{ "WERR_CLASS_NOT_REGISTERED", WERR_CLASS_NOT_REGISTERED },
+ { "WERR_PRINT_PROCESSOR_ALREADY_INSTALLED", WERR_PRINT_PROCESSOR_ALREADY_INSTALLED },
/*****************************************************************************
Auto-generated Win32 error from:
http://msdn.microsoft.com/en-us/library/cc231199%28PROT.10%29.aspx
diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index a43449b..e7fecfe 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -28,7 +28,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
uint16 millisecond;
} spoolss_Time;
- typedef struct {
+ typedef [public] struct {
[value(ndr_size_spoolss_Time(time, ndr->flags))] uint32 size;
[unique] spoolss_Time *time;
} spoolss_TimeCtr;
@@ -427,10 +427,10 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
uint32 dwSize;
[value(SPOOLSS_DM_SIGNATURE_JTEXP)] spoolss_DM_Signature dwSignature;
[value(0)] uint32 dwVersion;
- [value(16)] uint32 wJTHdrSize;
- uint32 wCoreMFOSize;
- [string,charset(UTF16)] uint16 *ModelName;
- nstring_array FeatureOptionPairs;
+ [value(16)] uint16 wJTHdrSize;
+ uint16 wCoreMFOSize; /* must be sizeof the two following elements, must be dwSize - 16*/
+ nstring ModelName;
+ [flag(STR_UTF8|STR_NULLTERM|NDR_REMAINING)] string_array FeatureOptionPairs;
} spoolss_JTEXP;
/* Device Mode Extra Data: OEM_DMEXTRA */
@@ -885,7 +885,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
/******************/
/* Function: 0x01 */
- typedef struct {
+ typedef [public] struct {
[value(_ndr_size_spoolss_DeviceMode(devmode, ndr->flags))] uint32 _ndr_size;
[subcontext(4),subcontext_size(_ndr_size)] spoolss_DeviceMode *devmode;
} spoolss_DevmodeContainer;
@@ -1053,7 +1053,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
uint32 size_high;
} spoolss_SetJobInfo4;
- typedef [public] union {
+ typedef [ms_union,public] union {
[case(1)] spoolss_SetJobInfo1 *info1;
[case(2)] spoolss_SetJobInfo2 *info2;
[case(3)] spoolss_JobInfo3 *info3;
@@ -1061,7 +1061,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
[default];
} spoolss_SetJobInfo;
- typedef struct {
+ typedef [public] struct {
uint32 level;
[switch_is(level)] spoolss_SetJobInfo info;
} spoolss_JobInfoContainer;
@@ -1251,7 +1251,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
uint32 *devmode_ptr;
} spoolss_SetPrinterInfo9;
- typedef [switch_type(uint32)] union {
+ typedef [ms_union,switch_type(uint32)] union {
[case(0)] spoolss_SetPrinterInfo0 *info0;
[case(1)] spoolss_SetPrinterInfo1 *info1;
[case(2)] spoolss_SetPrinterInfo2 *info2;
@@ -1265,7 +1265,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
[default];
} spoolss_SetPrinterInfo;
- typedef struct {
+ typedef [public] struct {
uint32 level;
[switch_is(level)] spoolss_SetPrinterInfo info;
} spoolss_SetPrinterInfoCtr;
@@ -1428,7 +1428,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
hyper min_inbox_driver_ver_version;
} spoolss_AddDriverInfo8;
- typedef [switch_type(uint32)] union {
+ typedef [ms_union,switch_type(uint32)] union {
[case(1)] spoolss_AddDriverInfo1 *info1;
[case(2)] spoolss_AddDriverInfo2 *info2;
[case(3)] spoolss_AddDriverInfo3 *info3;
@@ -1437,7 +1437,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
[case(8)] spoolss_AddDriverInfo8 *info8;
} spoolss_AddDriverInfo;
- typedef struct {
+ typedef [public] struct {
uint32 level;
[switch_is(level)] spoolss_AddDriverInfo info;
} spoolss_AddDriverInfoCtr;
@@ -1746,14 +1746,14 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
[string,charset(UTF16)] uint16 *datatype;
} spoolss_DocumentInfo1;
- typedef [switch_type(uint32)] union {
+ typedef [ms_union,switch_type(uint32)] union {
[case(1)] spoolss_DocumentInfo1 *info1;
[case(2)]; /* TODO */
[case(3)]; /* TODO */
[default];
} spoolss_DocumentInfo;
- typedef struct {
+ typedef [public] struct {
uint32 level;
[switch_is(level)] spoolss_DocumentInfo info;
} spoolss_DocumentInfoCtr;
@@ -2047,12 +2047,12 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
uint32 lang_id;
} spoolss_AddFormInfo2;
- typedef [switch_type(uint32)] union {
+ typedef [ms_union,switch_type(uint32)] union {
[case(1)] spoolss_AddFormInfo1 *info1;
[case(2)] spoolss_AddFormInfo2 *info2;
} spoolss_AddFormInfo;
- typedef struct {
+ typedef [public] struct {
uint32 level;
[switch_is(level)] spoolss_AddFormInfo info;
} spoolss_AddFormInfoCtr;
@@ -2279,14 +2279,14 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
DATA_BLOB monitor_data; /* relative ?? */
} spoolss_SetPortInfoFF;
- typedef [switch_type(uint32)] union {
+ typedef [ms_union,switch_type(uint32)] union {
[case(1)] spoolss_SetPortInfo1 *info1;
[case(2)] spoolss_SetPortInfo2 *info2;
[case(3)] spoolss_SetPortInfo3 *info3;
[case(0xff)] spoolss_SetPortInfoFF *infoFF;
} spoolss_SetPortInfo;
- typedef struct {
+ typedef [public] struct {
uint32 level;
[switch_is(level)] spoolss_SetPrinterInfo info;
} spoolss_SetPortInfoContainer;
@@ -2365,6 +2365,27 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
/******************/
/* Function: 0x2e */
+
+ typedef struct {
+ [string,charset(URF16)] uint16 *monitor_name;
+ } spoolss_AddMonitorInfo1;
+
+ typedef struct {
+ [string,charset(URF16)] uint16 *monitor_name;
+ [string,charset(URF16)] uint16 *environment;
+ [string,charset(URF16)] uint16 *dll_name;
+ } spoolss_AddMonitorInfo2;
+
+ typedef [ms_union,switch_type(uint32)] union {
+ [case(1)] spoolss_AddMonitorInfo1 *info1;
+ [case(2)] spoolss_AddMonitorInfo2 *info2;
+ } spoolss_AddMonitorInfo;
+
+ typedef [public] struct {
+ uint32 level;
+ [switch_is(level)] spoolss_MonitorInfo info;
+ } spoolss_MonitorContainer;
+
[todo] WERROR spoolss_AddMonitor(
);
@@ -2375,7 +2396,10 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
/******************/
/* Function: 0x30 */
- [todo] WERROR spoolss_DeletePrintProcessor(
+ WERROR spoolss_DeletePrintProcessor(
+ [in,unique] [string,charset(UTF16)] uint16 *server,
+ [in,unique] [string,charset(UTF16)] uint16 *architecture,
+ [in] [string,charset(UTF16)] uint16 print_processor_name[]
);
/******************/
@@ -2549,7 +2573,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
/******************/
/* Function: 0x3d */
- typedef struct {
+ typedef [public] struct {
uint32 monitor_data_size;
[size_is(monitor_data_size),unique] uint8 *monitor_data;
} spoolss_PortVarContainer;
@@ -2660,7 +2684,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
PRINTER_NOTIFY_OPTIONS_REFRESH = 0x00000001
} spoolssNotifyOptionFlags;
- typedef struct {
+ typedef [public] struct {
[value(2)] uint32 version;
spoolssNotifyOptionFlags flags;
uint32 count;
@@ -2692,7 +2716,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
NOTIFY_TABLE_SECURITYDESCRIPTOR = 0x0005
} spoolss_NotifyTable;
- typedef [switch_type(uint32)] union {
+ typedef [ms_union, switch_type(uint32)] union {
[case(1)] uint32 integer[2];
[case(2)] spoolss_NotifyString string;
[case(3)] spoolss_DevmodeContainer devmode;
@@ -2708,14 +2732,14 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
[switch_is(variable_type)] spoolss_NotifyData data;
} spoolss_Notify;
- typedef struct {
+ typedef [public] struct {
[value(2)] uint32 version;
uint32 flags;
uint32 count;
[size_is(count)] spoolss_Notify notifies[];
} spoolss_NotifyInfo;
- typedef [switch_type(uint32)] union {
+ typedef [ms_union,switch_type(uint32)] union {
[case(0)] spoolss_NotifyInfo *info0;
} spoolss_ReplyPrinterInfo;
@@ -2775,13 +2799,13 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
udlong reserved;
} spoolss_UserLevel3;
- typedef [switch_type(uint32)] union {
+ typedef [ms_union,switch_type(uint32)] union {
[case(1)] spoolss_UserLevel1 *level1;
[case(2)] spoolss_UserLevel2 *level2;
[case(3)] spoolss_UserLevel3 *level3;
} spoolss_UserLevel;
- typedef struct {
+ typedef [public] struct {
uint32 level;
[switch_is(level)] spoolss_UserLevel user_info;
} spoolss_UserLevelCtr;
@@ -3158,7 +3182,76 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
/******************/
/* Function: 0x61 */
- [todo] WERROR spoolss_61(
+
+ const string BIDI_ACTION_ENUM_SCHEMA = "EnumSchema";
+ const string BIDI_ACTION_GET = "Get";
+ const string BIDI_ACTION_SET = "Set";
+ const string BIDI_ACTION_GET_ALL = "GetAll";
+
+ typedef enum {
+ BIDI_NULL = 0x00000000,
+ BIDI_INT = 0x00000001,
+ BIDI_FLOAT = 0x00000002,
+ BIDI_BOOL = 0x00000003,
+ BIDI_STRING = 0x00000004,
+ BIDI_TEXT = 0x00000005,
+ BIDI_ENUM = 0x00000006,
+ BIDI_BLOB = 0x00000007
+ } BIDI_TYPE;
+
+ typedef struct {
+ uint32 cbBuf;
+ [size_is(cbBuf), unique] uint8 *pszString;
+ } RPC_BINARY_CONTAINER;
+
+ typedef [ms_union,switch_type(uint32)] union {
+ [case(BIDI_NULL)] uint32 bData;
+ [case(BIDI_BOOL)] uint32 bData;
+ [case(BIDI_INT)] uint32 iData;
+ [case(BIDI_STRING)] [unique] [string,charset(UTF16)] uint16 *sData;
+ [case(BIDI_TEXT)] [unique] [string,charset(UTF16)] uint16 *sData;
+ [case(BIDI_ENUM)] [unique] [string,charset(UTF16)] uint16 *sData;
+ /*[case(BIDI_FLOAT)] float fData;*/
+ [case(BIDI_BLOB)] RPC_BINARY_CONTAINER biData;
+ } RPC_BIDI_DATA_u;
+
+ typedef struct {
+ uint32 dwBidiType;
+ [switch_is(dwBidiType)] RPC_BIDI_DATA_u u;
+ } RPC_BIDI_DATA;
+
+ typedef struct {
+ uint32 dwReqNumber;
+ [unique] [string,charset(UTF16)] uint16 *pSchema;
+ RPC_BIDI_DATA data;
+ } RPC_BIDI_REQUEST_DATA;
+
+ typedef [public] struct {
+ [value(1)] uint32 Version;
+ uint32 Flags;
+ uint32 Count;
+ [size_is(Count), unique] RPC_BIDI_REQUEST_DATA *aData[];
+ } RPC_BIDI_REQUEST_CONTAINER;
+
+ typedef struct {
+ uint32 dwResult;
+ uint32 dwReqNumber;
+ [unique] [string,charset(UTF16)] uint16 *pSchema;
+ RPC_BIDI_DATA data;
+ } RPC_BIDI_RESPONSE_DATA;
+
+ typedef [public] struct {
+ [value(1)] uint32 Version;
+ uint32 Flags;
+ uint32 Count;
+ [size_is(Count), unique] RPC_BIDI_RESPONSE_DATA *aData[];
+ } RPC_BIDI_RESPONSE_CONTAINER;
+
+ WERROR spoolss_RpcSendRecvBidiData(
+ [in] policy_handle hPrinter,
+ [in,unique] [string,charset(UTF16)] uint16 *pAction,
+ [in] RPC_BIDI_REQUEST_CONTAINER *pReqData,
+ [out] RPC_BIDI_RESPONSE_CONTAINER **ppRespData
);
/******************/
@@ -3183,14 +3276,14 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
/******************/
/* Function: 0x66 */
- typedef struct {
+ typedef [public] struct {
GUID core_driver_guid;
NTTIME driver_date;
hyper driver_version;
[charset(UTF8)] uint8 formname[520];
} spoolss_CorePrinterDriver;
- WERROR spoolss_GetCorePrinterDrivers(
+ [public] WERROR spoolss_GetCorePrinterDrivers(
[in,unique] [string,charset(UTF16)] uint16 *servername,
[in,ref] [string,charset(UTF16)] uint16 *architecture,
[in] uint32 core_driver_size,
@@ -3243,21 +3336,73 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
/******************/
/* Function: 0x6e */
- [todo] WERROR spoolss_RpcGetJobNamedPropertyValue(
+
+ const string SPLFILE_CONTENT_TYPE_PROP_NAME = "Spool File Contents";
+ const string SPLFILE_CONTENT_TYPE_XPS_MS = "TYPE_XPS_MS";
+ const string SPLFILE_CONTENT_TYPE_XPS_OPEN = "TYPE_XPS_OPEN";
+ const string SPLFILE_CONTENT_TYPE_PDL_POSTSCRIPT = "TYPE_PDL_POSTSCRIPT";
+ const string SPLFILE_CONTENT_TYPE_PDL_UNKNOWN = "TYPE_PDL_UNKNOWN";
+
+ typedef enum {
+ kRpcPropertyTypeString = 1,
+ kRpcPropertyTypeInt32 = 2,
+ kRpcPropertyTypeInt64 = 3,
+ kRpcPropertyTypeByte = 4,
+ kRpcPropertyTypeBuffer = 5
+ } RPC_EPrintPropertyType;
+
+ typedef struct {
+ uint32 cbBuf;
+ [size_is(cbBuf)] uint8 *pBuf;
+ } propertyBlob;
+
+ typedef [ms_union,switch_type(RPC_EPrintPropertyType)] union {
+ [case(kRpcPropertyTypeString)] [string,charset(UTF16)] uint16 *propertyString;
+ [case(kRpcPropertyTypeInt32)] uint32 propertyInt32;
+ [case(kRpcPropertyTypeInt64)] hyper propertyInt64;
+ [case(kRpcPropertyTypeByte)] uint8 propertyByte;
+ [case(kRpcPropertyTypeBuffer)] propertyBlob propertyBlob;
+ } RPC_PrintPropertyValueUnion;
+
+ typedef [public] struct {
+ RPC_EPrintPropertyType ePropertyType;
+ [switch_is(ePropertyType)] RPC_PrintPropertyValueUnion value;
+ } RPC_PrintPropertyValue;
+
+ typedef [public] struct {
+ [string,charset(UTF16)] uint16 *propertyName;
+ RPC_PrintPropertyValue propertyValue;
+ } RPC_PrintNamedProperty;
+
+ WERROR spoolss_RpcGetJobNamedPropertyValue(
+ [in,ref] policy_handle *hPrinter,
+ [in] uint32 JobId,
+ [in] [string,charset(UTF16)] uint16 *pszName,
+ [out,ref] RPC_PrintPropertyValue *pValue
);
/******************/
/* Function: 0x6f */
- [todo] WERROR spoolss_RpcSetJobNamedProperty(
+ [public] WERROR spoolss_RpcSetJobNamedProperty(
+ [in,ref] policy_handle *hPrinter,
+ [in] uint32 JobId,
+ [in,ref] RPC_PrintNamedProperty *pProperty
);
/******************/
/* Function: 0x70 */
- [todo] WERROR spoolss_RpcDeleteJobNamedProperty(
+ WERROR spoolss_RpcDeleteJobNamedProperty(
+ [in,ref] policy_handle *hPrinter,
+ [in] uint32 JobId,
+ [in] [string,charset(UTF16)] uint16 *pszName
);
/******************/
/* Function: 0x71 */
- [todo] WERROR spoolss_RpcEnumJobNamedProperties(
+ WERROR spoolss_RpcEnumJobNamedProperties(
+ [in,ref] policy_handle *hPrinter,
+ [in] uint32 JobId,
+ [out,ref] uint32 *pcProperties,
+ [out,ref,size_is(,*pcProperties)] RPC_PrintNamedProperty **ppProperties
);
}
diff --git a/selftest/knownfail b/selftest/knownfail
index a7f347e..a06bab6 100644
--- a/selftest/knownfail
+++ b/selftest/knownfail
@@ -215,6 +215,7 @@
^samba3.raw.session.*reauth2 # maybe fix this?
^samba3.rpc.spoolss.printer.addprinter.driver_info_winreg # knownfail or flapping?
^samba3.rpc.spoolss.printer.addprinterex.driver_info_winreg # knownfail or flapping?
+^samba3.rpc.spoolss.printserver.*.add_processor\(.*\)$
#
# The following tests fail against plugin_s4_dc (aka s3fs) currently.
# These need to be examined and either fixed or correctly categorised.
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index 891f429..7482443 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -10852,11 +10852,11 @@ WERROR _spoolss_60(struct pipes_struct *p,
}
/****************************************************************
- _spoolss_61
+ _spoolss_RpcSendRecvBidiData
****************************************************************/
-WERROR _spoolss_61(struct pipes_struct *p,
- struct spoolss_61 *r)
+WERROR _spoolss_RpcSendRecvBidiData(struct pipes_struct *p,
+ struct spoolss_RpcSendRecvBidiData *r)
{
p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
return WERR_NOT_SUPPORTED;
diff --git a/source4/rpc_server/spoolss/dcesrv_spoolss.c b/source4/rpc_server/spoolss/dcesrv_spoolss.c
index e3df4e0..cb892a6 100644
--- a/source4/rpc_server/spoolss/dcesrv_spoolss.c
+++ b/source4/rpc_server/spoolss/dcesrv_spoolss.c
@@ -1592,10 +1592,10 @@ static WERROR dcesrv_spoolss_60(struct dcesrv_call_state *dce_call, TALLOC_CTX *
/*
- spoolss_61
+ spoolss_RpcSendRecvBidiData
*/
-static WERROR dcesrv_spoolss_61(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct spoolss_61 *r)
+static WERROR dcesrv_spoolss_RpcSendRecvBidiData(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct spoolss_RpcSendRecvBidiData *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
}
diff --git a/source4/torture/ndr/spoolss.c b/source4/torture/ndr/spoolss.c
index 52a5b03..5818fdf 100644
--- a/source4/torture/ndr/spoolss.c
+++ b/source4/torture/ndr/spoolss.c
@@ -1699,6 +1699,75 @@ static const uint8_t setprinter_64_req_data[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
+static const uint8_t getcoreprinterdrivers_64_req_data[] = {
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x5c, 0x00,
+ 0x31, 0x00, 0x39, 0x00, 0x32, 0x00, 0x2e, 0x00, 0x31, 0x00, 0x36, 0x00,
+ 0x38, 0x00, 0x2e, 0x00, 0x33, 0x00, 0x2e, 0x00, 0x34, 0x00, 0x38, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x64, 0x00,
+ 0x6f, 0x00, 0x77, 0x00, 0x73, 0x00, 0x20, 0x00, 0x78, 0x00, 0x36, 0x00,
+ 0x34, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x44, 0x00,
+ 0x32, 0x00, 0x30, 0x00, 0x45, 0x00, 0x41, 0x00, 0x33, 0x00, 0x37, 0x00,
+ 0x32, 0x00, 0x2d, 0x00, 0x44, 0x00, 0x44, 0x00, 0x33, 0x00, 0x35, 0x00,
+ 0x2d, 0x00, 0x34, 0x00, 0x39, 0x00, 0x35, 0x00, 0x30, 0x00, 0x2d, 0x00,
+ 0x39, 0x00, 0x45, 0x00, 0x44, 0x00, 0x38, 0x00, 0x2d, 0x00, 0x41, 0x00,
+ 0x36, 0x00, 0x33, 0x00, 0x33, 0x00, 0x35, 0x00, 0x41, 0x00, 0x46, 0x00,
+ 0x45, 0x00, 0x37, 0x00, 0x39, 0x00, 0x46, 0x00, 0x30, 0x00, 0x7d, 0x00,
--
Samba Shared Repository
More information about the samba-cvs
mailing list