From 59df3ce5b5c5b484793a0e16faeb581ef343e167 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 17 Nov 2003 06:27:45 +0000 Subject: security descriptors are no longer a "special" type, they are handled using the [relative] property this also fixes level3 of PrinterInfo (a relative secdesc) (This used to be commit d5a15257fdd5f6cfe2706765a7c29f623ec1c6f8) --- source4/librpc/idl/misc.idl | 53 ++++++++++++++++++++++++++++++++++++++++++ source4/librpc/idl/spoolss.idl | 14 +++++------ 2 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 source4/librpc/idl/misc.idl (limited to 'source4/librpc/idl') diff --git a/source4/librpc/idl/misc.idl b/source4/librpc/idl/misc.idl new file mode 100644 index 0000000000..c170beceae --- /dev/null +++ b/source4/librpc/idl/misc.idl @@ -0,0 +1,53 @@ +/* + miscellaneous IDL structures +*/ + +[ uuid(0-0-0-0-0), + version(0.0), + pointer_default(unique) +] interface misc +{ + + /* a domain SID. Note that unlike Samba3 this contains a pointer, + so you can't copy them using assignment */ + typedef [public,noprint] struct { + uint8 sid_rev_num; /**< SID revision number */ + uint8 num_auths; /**< Number of sub-authorities */ + uint8 id_auth[6]; /**< Identifier Authority */ + uint32 sub_auths[num_auths]; + } dom_sid; + + typedef [public] struct { + uint8 type; /* xxxx_xxxx_ACE_TYPE - e.g allowed / denied etc */ + uint8 flags; /* xxxx_INHERIT_xxxx - e.g OBJECT_INHERIT_ACE */ + uint32 access_mask; + +#if 0 + /* the 'obj' part is present when type is XXXX_TYPE_XXXX_OBJECT */ + struct { + uint32 flags; + GUID object_guid; + GUID inherit_guid; + } *obj; +#endif + + dom_sid trustee; + } security_ace; + + typedef [public] struct { + uint16 revision; + uint32 num_aces; + security_ace aces[num_aces]; + } security_acl; + + + typedef [public] struct { + uint8 revision; + uint16 type; /* SEC_DESC_xxxx flags */ + [relative] dom_sid *owner_sid; + [relative] dom_sid *group_sid; + [relative] security_acl *sacl; /* system ACL */ + [relative] security_acl *dacl; /* user (discretionary) ACL */ + } security_descriptor; + +} diff --git a/source4/librpc/idl/spoolss.idl b/source4/librpc/idl/spoolss.idl index 7abf3effde..4800d8ff2a 100644 --- a/source4/librpc/idl/spoolss.idl +++ b/source4/librpc/idl/spoolss.idl @@ -45,7 +45,7 @@ uint32 reserved2; uint32 panningwidth; uint32 panningheight; -// uint8 private[driverextra]; + uint8 private[driverextra]; } spoolss_DeviceMode; typedef struct { @@ -81,7 +81,7 @@ typedef struct { uint32 flags; - [relative] security_descriptor *secdesc; + security_descriptor secdesc; } spoolss_PrinterInfo3; typedef struct { @@ -153,9 +153,8 @@ [in] uint32 firstjob, [in] uint32 numjobs, [in] uint32 level, - [in,out] uint8_buf *buffer, - [in] uint32 offered, - [out] uint32 needed, + [in,out] DATA_BLOB *buffer, + [in,out,ref] uint32 *buf_size, [out] uint32 numjobs ); @@ -537,13 +536,12 @@ [in,ref] policy_handle *handle, [in] uint32 enum_index, [in] uint32 value_offered, - [in] uint32 data_offered, [out] uint32 value_len, [out] unistr *value_name, [out] uint32 value_needed, [out] uint32 printerdata_type, - [out] uint8_buf printerdata, - [out] uint32 data_needed + [in,out] DATA_BLOB *buffer, + [in,out,ref] uint32 *buf_size ); /******************/ -- cgit