1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-12 04:23:49 +03:00

Use pidl for _samr_LookupDomain().

Guenther
This commit is contained in:
Günther Deschner
2008-02-05 01:29:49 +01:00
parent 9ecb721835
commit 9bc106ba56
2 changed files with 24 additions and 51 deletions

View File

@@ -2847,47 +2847,50 @@ NTSTATUS _samr_Connect5(pipes_struct *p,
}
/**********************************************************************
api_samr_lookup_domain
_samr_LookupDomain
**********************************************************************/
NTSTATUS _samr_lookup_domain(pipes_struct *p, SAMR_Q_LOOKUP_DOMAIN *q_u, SAMR_R_LOOKUP_DOMAIN *r_u)
NTSTATUS _samr_LookupDomain(pipes_struct *p,
struct samr_LookupDomain *r)
{
NTSTATUS status = NT_STATUS_OK;
struct samr_info *info;
fstring domain_name;
DOM_SID sid;
const char *domain_name;
DOM_SID *sid = NULL;
r_u->status = NT_STATUS_OK;
if (!find_policy_by_hnd(p, &q_u->connect_pol, (void**)(void *)&info))
if (!find_policy_by_hnd(p, r->in.connect_handle, (void**)(void *)&info))
return NT_STATUS_INVALID_HANDLE;
/* win9x user manager likes to use SA_RIGHT_SAM_ENUM_DOMAINS here.
Reverted that change so we will work with RAS servers again */
if (!NT_STATUS_IS_OK(r_u->status = access_check_samr_function(info->acc_granted,
SA_RIGHT_SAM_OPEN_DOMAIN, "_samr_lookup_domain")))
{
return r_u->status;
status = access_check_samr_function(info->acc_granted,
SA_RIGHT_SAM_OPEN_DOMAIN,
"_samr_LookupDomain");
if (!NT_STATUS_IS_OK(status)) {
return status;
}
rpcstr_pull(domain_name, q_u->uni_domain.buffer, sizeof(domain_name), q_u->uni_domain.uni_str_len*2, 0);
domain_name = r->in.domain_name->string;
ZERO_STRUCT(sid);
sid = TALLOC_ZERO_P(p->mem_ctx, struct dom_sid2);
if (!sid) {
return NT_STATUS_NO_MEMORY;
}
if (strequal(domain_name, builtin_domain_name())) {
sid_copy(&sid, &global_sid_Builtin);
sid_copy(sid, &global_sid_Builtin);
} else {
if (!secrets_fetch_domain_sid(domain_name, &sid)) {
r_u->status = NT_STATUS_NO_SUCH_DOMAIN;
if (!secrets_fetch_domain_sid(domain_name, sid)) {
status = NT_STATUS_NO_SUCH_DOMAIN;
}
}
DEBUG(2,("Returning domain sid for domain %s -> %s\n", domain_name,
sid_string_dbg(&sid)));
sid_string_dbg(sid)));
init_samr_r_lookup_domain(r_u, &sid, r_u->status);
*r->out.sid = sid;
return r_u->status;
return status;
}
/******************************************************************
@@ -5084,16 +5087,6 @@ NTSTATUS _samr_Shutdown(pipes_struct *p,
/****************************************************************
****************************************************************/
NTSTATUS _samr_LookupDomain(pipes_struct *p,
struct samr_LookupDomain *r)
{
p->rng_fault_state = true;
return NT_STATUS_NOT_IMPLEMENTED;
}
/****************************************************************
****************************************************************/
NTSTATUS _samr_EnumDomains(pipes_struct *p,
struct samr_EnumDomains *r)
{