/* 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
/* 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