mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
901d2bd99b
This is an equivalent of QueryUserList with simpler output. The next commit will use it to go through wb_getpwsid for getent passwd, to make sure we get the same results. Eventually, this might get a simpler backend. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Uri Simchoni <uri@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
224 lines
5.2 KiB
Plaintext
224 lines
5.2 KiB
Plaintext
#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"),
|
|
no_srv_register
|
|
]
|
|
interface winbind
|
|
{
|
|
/* Private methods */
|
|
|
|
void wbint_Ping(
|
|
[in] uint32 in_data,
|
|
[out] uint32 *out_data
|
|
);
|
|
|
|
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
|
|
);
|
|
|
|
typedef struct {
|
|
id_type type;
|
|
uint32 domain_index;
|
|
uint32 rid;
|
|
unixid xid;
|
|
} 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_UnixIDs2Sids(
|
|
[in,string,charset(UTF8)] char *domain_name,
|
|
[in] uint32 num_ids,
|
|
[in,out] unixid xids[num_ids],
|
|
[out] dom_sid sids[num_ids]
|
|
);
|
|
|
|
NTSTATUS wbint_AllocateUid(
|
|
[out] hyper *uid
|
|
);
|
|
|
|
NTSTATUS wbint_AllocateGid(
|
|
[out] hyper *gid
|
|
);
|
|
|
|
typedef [public] struct {
|
|
[string,charset(UTF8)] char *domain_name;
|
|
[string,charset(UTF8)] char *acct_name;
|
|
[string,charset(UTF8)] char *full_name;
|
|
[string,charset(UTF8)] char *homedir;
|
|
[string,charset(UTF8)] char *shell;
|
|
hyper uid;
|
|
hyper primary_gid;
|
|
[string,charset(UTF8)] char *primary_group_name;
|
|
dom_sid user_sid;
|
|
dom_sid group_sid;
|
|
} wbint_userinfo;
|
|
|
|
NTSTATUS wbint_QueryUser(
|
|
[in] dom_sid *sid,
|
|
[out] wbint_userinfo *info
|
|
);
|
|
|
|
NTSTATUS wbint_GetNssInfo(
|
|
[in,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_QueryUserRidList(
|
|
[out] wbint_RidArray *rids
|
|
);
|
|
|
|
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
|
|
);
|
|
|
|
/* Public methods available via IRPC */
|
|
|
|
typedef [switch_type(uint16)] union netr_LogonLevel netr_LogonLevel;
|
|
typedef [switch_type(uint16)] union netr_Validation netr_Validation;
|
|
|
|
/*
|
|
* do a netr_LogonSamLogon() against the right DC
|
|
*/
|
|
NTSTATUS winbind_SamLogon(
|
|
[in] uint16 logon_level,
|
|
[in] [switch_is(logon_level)] netr_LogonLevel logon,
|
|
[in] uint16 validation_level,
|
|
[out] [switch_is(validation_level)] netr_Validation validation,
|
|
[out] uint8 authoritative
|
|
);
|
|
|
|
NTSTATUS winbind_DsrUpdateReadOnlyServerDnsRecords(
|
|
[in,unique] [string,charset(UTF16)] uint16 *site_name,
|
|
[in] uint32 dns_ttl,
|
|
[in,out,ref] NL_DNS_NAME_INFO_ARRAY *dns_names
|
|
);
|
|
|
|
/*
|
|
* do a netr_LogonControl2Ex() against the right DC
|
|
*/
|
|
typedef [v1_enum] enum netr_LogonControlCode netr_LogonControlCode;
|
|
typedef [switch_type(netr_LogonControlCode)] union netr_CONTROL_DATA_INFORMATION netr_CONTROL_DATA_INFORMATION;
|
|
typedef [switch_type(uint32)] union netr_CONTROL_QUERY_INFORMATION netr_CONTROL_QUERY_INFORMATION;
|
|
|
|
WERROR winbind_LogonControl(
|
|
[in] netr_LogonControlCode function_code,
|
|
[in] uint32 level,
|
|
[in,ref][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION *data,
|
|
[out,ref][switch_is(level)] netr_CONTROL_QUERY_INFORMATION *query
|
|
);
|
|
|
|
/*
|
|
* do a netr_GetForestTrustInformation() against the right DC
|
|
*/
|
|
WERROR winbind_GetForestTrustInformation(
|
|
[in,unique] [string,charset(UTF16)] uint16 *trusted_domain_name,
|
|
[in] uint32 flags,
|
|
[out,ref] lsa_ForestTrustInformation **forest_trust_info
|
|
);
|
|
}
|