mirror of
https://github.com/samba-team/samba.git
synced 2025-01-12 09:18:10 +03:00
r11288: Fill out LSA LookupNames4 and LookupSids3, including a server-side
implementation. Andrew Bartlett
This commit is contained in:
parent
e15e39866e
commit
a6a615cc99
@ -930,7 +930,16 @@
|
||||
);
|
||||
|
||||
/* Function 0x4d */
|
||||
NTSTATUS lsa_LSARLOOKUPNAMES4();
|
||||
NTSTATUS lsa_LookupNames4(
|
||||
[in,range(0,1000)] uint32 num_names,
|
||||
[in,size_is(num_names)] lsa_String names[],
|
||||
[out,unique] lsa_RefDomainList *domains,
|
||||
[in,out] lsa_TransSidArray3 *sids,
|
||||
[in] uint16 level,
|
||||
[in,out] uint32 *count,
|
||||
[in] uint32 unknown1,
|
||||
[in] uint32 unknown2
|
||||
);
|
||||
|
||||
/* Function 0x4e */
|
||||
NTSTATUS lsa_LSAROPENPOLICYSCE();
|
||||
|
@ -2515,23 +2515,18 @@ static NTSTATUS lsa_lookup_name(struct lsa_policy_state *state, TALLOC_CTX *mem_
|
||||
|
||||
|
||||
/*
|
||||
lsa_LookupNames3
|
||||
lsa_LookupNames4
|
||||
*/
|
||||
static NTSTATUS lsa_LookupNames3(struct dcesrv_call_state *dce_call,
|
||||
static NTSTATUS lsa_LookupNames4(struct dcesrv_call_state *dce_call,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
struct lsa_LookupNames3 *r)
|
||||
struct lsa_LookupNames4 *r)
|
||||
{
|
||||
struct lsa_policy_state *state;
|
||||
struct dcesrv_handle *h;
|
||||
int i;
|
||||
NTSTATUS status = NT_STATUS_OK;
|
||||
|
||||
r->out.domains = NULL;
|
||||
|
||||
DCESRV_PULL_HANDLE(h, r->in.handle, LSA_HANDLE_POLICY);
|
||||
|
||||
state = h->data;
|
||||
|
||||
r->out.domains = talloc_zero(mem_ctx, struct lsa_RefDomainList);
|
||||
if (r->out.domains == NULL) {
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
@ -2590,6 +2585,35 @@ static NTSTATUS lsa_LookupNames3(struct dcesrv_call_state *dce_call,
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
lsa_LookupNames3
|
||||
*/
|
||||
static NTSTATUS lsa_LookupNames3(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct lsa_LookupNames3 *r)
|
||||
{
|
||||
struct lsa_LookupNames4 r2;
|
||||
NTSTATUS status;
|
||||
struct dcesrv_handle *h;
|
||||
DCESRV_PULL_HANDLE(h, r->in.handle, LSA_HANDLE_POLICY);
|
||||
|
||||
r2.in.num_names = r->in.num_names;
|
||||
r2.in.names = r->in.names;
|
||||
r2.in.sids = r->in.sids;
|
||||
r2.in.count = r->in.count;
|
||||
r2.in.unknown1 = r->in.unknown1;
|
||||
r2.in.unknown2 = r->in.unknown2;
|
||||
|
||||
status = lsa_LookupNames4(dce_call, mem_ctx, &r2);
|
||||
if (dce_call->fault_code != 0) {
|
||||
return status;
|
||||
}
|
||||
|
||||
r->out.domains = r2.out.domains;
|
||||
r->out.sids = r2.out.sids;
|
||||
r->out.count = r2.out.count;
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
lsa_LookupNames2
|
||||
*/
|
||||
@ -2861,15 +2885,6 @@ static NTSTATUS lsa_CREDRRENAME(struct dcesrv_call_state *dce_call, TALLOC_CTX *
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
lsa_LSARLOOKUPNAMES4
|
||||
*/
|
||||
static NTSTATUS lsa_LSARLOOKUPNAMES4(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct lsa_LSARLOOKUPNAMES4 *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
lsa_LSAROPENPOLICYSCE
|
||||
|
Loading…
Reference in New Issue
Block a user