s3-winbind: Return the DC name from DC_PING
[obnox/samba/samba-obnox.git] / source3 / librpc / idl / wbint.idl
index 40a4545a3af165433907ded80e767d8fd80b2e98..159af76a82066a603b9368eb628b3d7b3dcc2a6a 100644 (file)
@@ -1,9 +1,13 @@
+#include "idl_types.h"
+import "lsa.idl", "netlogon.idl", "misc.idl", "security.idl", "idmap.idl";
+
 [
     uuid("bf09192c-ed60-4928-9dff-d0d7bcb03ed8"),
     endpoint("ncalrpc:"),
     pointer_default(unique),
     version(1.0),
-    helpstring("winbind parent-child protocol")
+    helpstring("winbind parent-child protocol"),
+    no_srv_register
 ]
 interface wbint
 {
@@ -11,4 +15,168 @@ interface wbint
        [in] uint32 in_data,
        [out] uint32 *out_data
        );
-}
\ No newline at end of file
+
+    NTSTATUS wbint_LookupSid(
+       [in] dom_sid *sid,
+       [out] lsa_SidType *type,
+       [out,string,charset(UTF8)] char **domain,
+       [out,string,charset(UTF8)] char **name
+       );
+
+    NTSTATUS wbint_LookupSids(
+       [in] lsa_SidArray *sids,
+       [out,ref] lsa_RefDomainList *domains,
+       [out,ref] lsa_TransNameArray *names
+       );
+
+    NTSTATUS wbint_LookupName(
+       [in,string,charset(UTF8)] char *domain,
+       [in,string,charset(UTF8)] char *name,
+       [in] uint32 flags,
+       [out] lsa_SidType *type,
+       [out] dom_sid *sid
+       );
+
+    NTSTATUS wbint_Sid2Uid(
+       [in,unique,string,charset(UTF8)] char *dom_name,
+       [in] dom_sid *sid,
+       [out] hyper *uid
+       );
+
+    NTSTATUS wbint_Sid2Gid(
+       [in,unique,string,charset(UTF8)] char *dom_name,
+       [in] dom_sid *sid,
+       [out] hyper *gid
+       );
+
+    typedef struct {
+       id_type type;
+       uint32 domain_index;
+       uint32 rid;
+       hyper unix_id;
+    } wbint_TransID;
+
+    typedef struct {
+       uint32 num_ids;
+       [size_is(num_ids)] wbint_TransID ids[];
+    } wbint_TransIDArray;
+
+    NTSTATUS wbint_Sids2UnixIDs(
+       [in] lsa_RefDomainList *domains,
+       [in,out] wbint_TransIDArray *ids
+       );
+
+    NTSTATUS wbint_Uid2Sid(
+       [in,unique,string,charset(UTF8)] char *dom_name,
+       [in] hyper uid,
+       [out] dom_sid *sid
+       );
+
+    NTSTATUS wbint_Gid2Sid(
+       [in,unique,string,charset(UTF8)] char *dom_name,
+       [in] hyper gid,
+       [out] dom_sid *sid
+       );
+
+    NTSTATUS wbint_AllocateUid(
+       [out] hyper *uid
+       );
+
+    NTSTATUS wbint_AllocateGid(
+       [out] hyper *gid
+       );
+
+    typedef [public] struct {
+       [string,charset(UTF8)] char *acct_name;
+       [string,charset(UTF8)] char *full_name;
+       [string,charset(UTF8)] char *homedir;
+       [string,charset(UTF8)] char *shell;
+       hyper primary_gid;
+       dom_sid user_sid;
+       dom_sid group_sid;
+    } wbint_userinfo;
+
+    NTSTATUS wbint_QueryUser(
+       [in] dom_sid *sid,
+       [out] wbint_userinfo *info
+       );
+
+    typedef [public] struct {
+       uint32 num_sids;
+       [size_is(num_sids)] dom_sid sids[];
+    } wbint_SidArray;
+
+    typedef [public] struct {
+       uint32 num_rids;
+       [size_is(num_rids)] uint32 rids[];
+    } wbint_RidArray;
+
+    NTSTATUS wbint_LookupUserAliases(
+       [in] wbint_SidArray *sids,
+       [out] wbint_RidArray *rids
+       );
+
+    NTSTATUS wbint_LookupUserGroups(
+       [in] dom_sid *sid,
+       [out] wbint_SidArray *sids
+       );
+
+    NTSTATUS wbint_QuerySequenceNumber(
+       [out] uint32 *sequence
+       );
+
+    typedef [public] struct {
+       dom_sid sid;
+       lsa_SidType type;
+       [string,charset(UTF8)] char *name;
+    } wbint_Principal;
+
+    typedef [public] struct {
+       int num_principals;
+       [size_is(num_principals)] wbint_Principal principals[];
+    } wbint_Principals;
+
+    NTSTATUS wbint_LookupGroupMembers(
+       [in] dom_sid *sid,
+       [in] lsa_SidType type,
+       [out] wbint_Principals *members
+       );
+
+    typedef [public] struct {
+       uint32 num_userinfos;
+       [size_is(num_userinfos)] wbint_userinfo userinfos[];
+    } wbint_userinfos;
+
+    NTSTATUS wbint_QueryUserList(
+       [out] wbint_userinfos *users
+       );
+
+    NTSTATUS wbint_QueryGroupList(
+       [out] wbint_Principals *groups
+       );
+
+    NTSTATUS wbint_DsGetDcName(
+       [in,string,charset(UTF8)]               char *domain_name,
+       [in,unique]                             GUID *domain_guid,
+       [in,string,unique,charset(UTF8)]        char *site_name,
+       [in]                                    uint32 flags,
+       [out]                                   netr_DsRGetDCNameInfo **dc_info
+       );
+
+    NTSTATUS wbint_LookupRids(
+       [in] dom_sid *domain_sid,
+       [in] wbint_RidArray *rids,
+       [out,string,charset(UTF8)] char **domain_name,
+       [out] wbint_Principals *names
+       );
+
+    NTSTATUS wbint_CheckMachineAccount(
+       );
+
+    NTSTATUS wbint_ChangeMachineAccount(
+       );
+
+    NTSTATUS wbint_PingDc(
+       [out,string,charset(UTF8)] char **dcname
+       );
+}