1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-26 21:57:41 +03:00

winbindd: allow all possible logon levels in wb_irpc_SamLogon()

We should just try to find the correct domain to forward the
request, all logic of not implementing serveral logon levels
belongs to the _winbind_SamLogon() implementation.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
This commit is contained in:
Stefan Metzmacher 2017-07-21 12:29:31 +02:00 committed by Andreas Schneider
parent b88f9384b0
commit 039ad5c9ad

View File

@ -133,11 +133,42 @@ static NTSTATUS wb_irpc_SamLogon(struct irpc_message *msg,
struct winbind_SamLogon *req)
{
struct winbindd_domain *domain;
const char *target_domain_name;
if (req->in.logon.network == NULL) {
struct netr_IdentityInfo *identity_info;
const char *target_domain_name = NULL;
switch (req->in.logon_level) {
case NetlogonInteractiveInformation:
case NetlogonServiceInformation:
case NetlogonInteractiveTransitiveInformation:
case NetlogonServiceTransitiveInformation:
if (req->in.logon.password == NULL) {
return NT_STATUS_REQUEST_NOT_ACCEPTED;
}
identity_info = &req->in.logon.password->identity_info;
break;
case NetlogonNetworkInformation:
case NetlogonNetworkTransitiveInformation:
if (req->in.logon.network == NULL) {
return NT_STATUS_REQUEST_NOT_ACCEPTED;
}
identity_info = &req->in.logon.network->identity_info;
break;
case NetlogonGenericInformation:
if (req->in.logon.generic == NULL) {
return NT_STATUS_REQUEST_NOT_ACCEPTED;
}
identity_info = &req->in.logon.generic->identity_info;
break;
default:
return NT_STATUS_REQUEST_NOT_ACCEPTED;
}
target_domain_name = req->in.logon.network->identity_info.domain_name.string;
target_domain_name = identity_info->domain_name.string;
domain = find_auth_domain(0, target_domain_name);
if (domain == NULL) {