summaryrefslogtreecommitdiff
path: root/source3/rpc_server/srv_netlog_nt.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpc_server/srv_netlog_nt.c')
-rw-r--r--source3/rpc_server/srv_netlog_nt.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_netlog_nt.c b/source3/rpc_server/srv_netlog_nt.c
index 33a81fa651..9169c74534 100644
--- a/source3/rpc_server/srv_netlog_nt.c
+++ b/source3/rpc_server/srv_netlog_nt.c
@@ -910,6 +910,12 @@ static NTSTATUS _netr_LogonSamLogon_base(pipes_struct *p,
return NT_STATUS_NO_MEMORY;
}
break;
+ case 6:
+ r->out.validation->sam6 = TALLOC_ZERO_P(p->mem_ctx, struct netr_SamInfo6);
+ if (!r->out.validation->sam6) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ break;
default:
DEBUG(0,("%s: bad validation_level value %d.\n",
fn, (int)r->in.validation_level));
@@ -918,6 +924,9 @@ static NTSTATUS _netr_LogonSamLogon_base(pipes_struct *p,
switch (r->in.logon_level) {
case NetlogonInteractiveInformation:
+ case NetlogonServiceInformation:
+ case NetlogonInteractiveTransitiveInformation:
+ case NetlogonServiceTransitiveInformation:
nt_username = logon->password->identity_info.account_name.string;
nt_domain = logon->password->identity_info.domain_name.string;
nt_workstation = logon->password->identity_info.workstation.string;
@@ -925,6 +934,7 @@ static NTSTATUS _netr_LogonSamLogon_base(pipes_struct *p,
DEBUG(3,("SAM Logon (Interactive). Domain:[%s]. ", lp_workgroup()));
break;
case NetlogonNetworkInformation:
+ case NetlogonNetworkTransitiveInformation:
nt_username = logon->network->identity_info.account_name.string;
nt_domain = logon->network->identity_info.domain_name.string;
nt_workstation = logon->network->identity_info.workstation.string;
@@ -947,6 +957,7 @@ static NTSTATUS _netr_LogonSamLogon_base(pipes_struct *p,
switch (r->in.logon_level) {
case NetlogonNetworkInformation:
+ case NetlogonNetworkTransitiveInformation:
{
const char *wksname = nt_workstation;
@@ -976,6 +987,10 @@ static NTSTATUS _netr_LogonSamLogon_base(pipes_struct *p,
break;
}
case NetlogonInteractiveInformation:
+ case NetlogonServiceInformation:
+ case NetlogonInteractiveTransitiveInformation:
+ case NetlogonServiceTransitiveInformation:
+
/* 'Interactive' authentication, supplies the password in its
MD4 form, encrypted with the session key. We will convert
this to challenge/response for the auth subsystem to chew
@@ -1066,6 +1081,10 @@ static NTSTATUS _netr_LogonSamLogon_base(pipes_struct *p,
status = serverinfo_to_SamInfo3(server_info, pipe_session_key, 16,
r->out.validation->sam3);
break;
+ case 6:
+ status = serverinfo_to_SamInfo6(server_info, pipe_session_key, 16,
+ r->out.validation->sam6);
+ break;
}
TALLOC_FREE(server_info);