wb-ndr: add idl for winbind_trust() with WINBIND_TRUST_LEVEL_COMPAT_LIST
authorStefan Metzmacher <metze@sernet.de>
Wed, 5 Mar 2008 06:10:39 +0000 (07:10 +0100)
committerStefan Metzmacher <metze@sernet.de>
Fri, 2 May 2008 14:13:23 +0000 (16:13 +0200)
metze

source/librpc/idl/winbind_protocol.idl

index 2819ae55a434f2642b9e19296231cdeeca9fb065..63a2260fffaba83bfb66c9bba65002c4c82b081d 100644 (file)
@@ -98,7 +98,41 @@ import "security.idl",  "lsa.idl";
        /* List w/o rid->id mapping */
        winbind_status winbind_list_groups(/*TODO*/);
 
-       winbind_status winbind_list_trustdom(/*TODO*/);
+       typedef [v1_enum] enum {
+               WINBIND_TRUST_LEVEL_COMPAT_LIST = 1
+       } winbind_trust_level;
+
+       /* Most of what we know from struct winbind_domain */
+       struct winbind_domain_info_compat {
+               [string,charset(UTF8)] uint8    netbios_name[];
+               [string,charset(UTF8)] uint8    *dns_name;
+               [ref] dom_sid                   *sid;
+               boolean32                       is_native_mode;
+               boolean32                       is_active_directory;
+               boolean32                       is_primary;
+       };
+
+       struct winbind_domain_info_compat_array {
+               uint32          num_domains;
+               struct winbind_domain_info_compat domains[num_domains];
+       };
+
+       typedef [switch_type(winbind_trust_level)] union {
+       [case(WINBIND_TRUST_LEVEL_COMPAT_LIST)];
+       [default];
+       } winbind_trust_req;
+
+       typedef [switch_type(winbind_trust_level)] union {
+       [case(WINBIND_TRUST_LEVEL_COMPAT_LIST)]
+               struct winbind_domain_info_compat_array compat_trusts;
+       [default];
+       } winbind_trust_rep;
+
+       winbind_status winbind_trust(
+               [in] winbind_trust_level *level,
+               [in,switch_is(*level)] winbind_trust_req req,
+               [out,switch_is(*level)] winbind_trust_rep *rep
+       );
 
        /*
         * Lookup functions
@@ -234,16 +268,6 @@ import "security.idl",  "lsa.idl";
        /* The domain this winbind server is a member of (lp_workgroup()) */
        winbind_status winbind_domain_name(/*TODO*/);
 
-       /* Most of what we know from struct winbind_domain */
-       struct winbind_domain_info_compat {
-               [string,charset(UTF8)] uint8    netbios_name[];
-               [string,charset(UTF8)] uint8    *dns_name;
-               [ref] dom_sid                   *sid;
-               boolean32                       is_native_mode;
-               boolean32                       is_active_directory;
-               boolean32                       is_primary;
-       };
-
        typedef [v1_enum] enum {
                WINBIND_DOMAIN_INFO_LEVEL_COMPAT = 1,
                WINBIND_DOMAIN_INFO_LEVEL_SEQNUM = 2