Add in secure channel type used by AD trusts
[kai/samba.git] / source4 / librpc / idl / misc.idl
index 04e03fc8147c0b2d846fbb23072f1f74ed92240e..791b86466ce7f1482f7d4701cda285d0c257a185 100644 (file)
@@ -1,60 +1,60 @@
-#include "idl_types.h"
-
 /*
   miscellaneous IDL structures
 */
 
-[] 
+
+[
+       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,noprint,gensize,noejs] struct {
+               uint32 time_low;
+               uint16 time_mid;
+               uint16 time_hi_and_version;
+               uint8  clock_seq[2];
+               uint8  node[6];
+       } GUID;
 
        typedef [public] struct {
-               uint16 revision;
-               uint32 num_aces;
-               security_ace aces[num_aces];
-       } security_acl;
-
+               GUID uuid;
+               uint32 if_version;
+       } ndr_syntax_id;
 
        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;
-
-       /* we declare this noprint so we can supply
-          a nicer pretty-print routine */
-       typedef [public, noprint] struct {
-               uint8 data[20];
+               uint32 handle_type;
+               GUID   uuid;
        } policy_handle;
 
-
+       /* secure channel types */
+       /* Only SEC_CHAN_WKSTA can forward requests to other domains. */
+
+       typedef [public] enum {
+               SEC_CHAN_NULL        = 0,
+               SEC_CHAN_WKSTA       = 2,
+               SEC_CHAN_DNS_DOMAIN  = 3,
+               SEC_CHAN_DOMAIN      = 4,
+               SEC_CHAN_BDC         = 6
+       } netr_SchannelType;
+
+       /* SAM database types */
+       typedef [public,v1_enum] enum {
+               SAM_DATABASE_DOMAIN  = 0, /* Domain users and groups */
+               SAM_DATABASE_BUILTIN = 1, /* BUILTIN users and groups */
+               SAM_DATABASE_PRIVS   = 2 /* Privileges */
+       } netr_SamDatabaseID;
+
+       typedef [public,v1_enum] enum {
+               SAMR_REJECT_OTHER      = 0,
+               SAMR_REJECT_TOO_SHORT  = 1,
+               SAMR_REJECT_IN_HISTORY = 2,
+               SAMR_REJECT_COMPLEXITY = 5
+       } samr_RejectReason;
+
+       /* id used to identify a endpoint, possibly in a cluster */
+       typedef [public] struct {
+               hyper id;
+               uint32 id2;
+               uint32 node;
+       } server_id;
 }