diff options
author | Günther Deschner <gd@samba.org> | 2009-08-31 17:13:05 +0200 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-09-02 10:23:28 +0200 |
commit | 931771138a52a3385afb2d3966509a57def3ece5 (patch) | |
tree | a696639bc2e05341f544d83b516a37aa695ca364 /source3/rpc_server | |
parent | 9f031352c6e9439922284fc853611964b33ea4af (diff) | |
download | samba-931771138a52a3385afb2d3966509a57def3ece5.tar.gz samba-931771138a52a3385afb2d3966509a57def3ece5.tar.bz2 samba-931771138a52a3385afb2d3966509a57def3ece5.zip |
s3-netlogon: implement _netr_LogonSamLogonWithFlags().
Guenther
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/srv_netlog_nt.c | 58 |
1 files changed, 40 insertions, 18 deletions
diff --git a/source3/rpc_server/srv_netlog_nt.c b/source3/rpc_server/srv_netlog_nt.c index 9a3c8c23bc..3daf45bbdd 100644 --- a/source3/rpc_server/srv_netlog_nt.c +++ b/source3/rpc_server/srv_netlog_nt.c @@ -807,6 +807,10 @@ static NTSTATUS _netr_LogonSamLogon_base(pipes_struct *p, process_creds = true; fn = "_netr_LogonSamLogon"; break; + case NDR_NETR_LOGONSAMLOGONWITHFLAGS: + process_creds = true; + fn = "_netr_LogonSamLogonWithFlags"; + break; case NDR_NETR_LOGONSAMLOGONEX: process_creds = false; fn = "_netr_LogonSamLogonEx"; @@ -993,18 +997,17 @@ static NTSTATUS _netr_LogonSamLogon_base(pipes_struct *p, return status; } -/************************************************************************* - _netr_LogonSamLogon - *************************************************************************/ +/**************************************************************** + _netr_LogonSamLogonWithFlags +****************************************************************/ -NTSTATUS _netr_LogonSamLogon(pipes_struct *p, - struct netr_LogonSamLogon *r) +NTSTATUS _netr_LogonSamLogonWithFlags(pipes_struct *p, + struct netr_LogonSamLogonWithFlags *r) { NTSTATUS status; struct netlogon_creds_CredentialState *creds; struct netr_LogonSamLogonEx r2; struct netr_Authenticator return_authenticator; - uint32_t flags = 0; become_root(); status = netr_creds_server_step_check(p, p->mem_ctx, @@ -1022,10 +1025,10 @@ NTSTATUS _netr_LogonSamLogon(pipes_struct *p, r2.in.logon_level = r->in.logon_level; r2.in.logon = r->in.logon; r2.in.validation_level = r->in.validation_level; - r2.in.flags = &flags; + r2.in.flags = r->in.flags; r2.out.validation = r->out.validation; r2.out.authoritative = r->out.authoritative; - r2.out.flags = &flags; + r2.out.flags = r->out.flags; status = _netr_LogonSamLogon_base(p, &r2, creds); @@ -1035,6 +1038,35 @@ NTSTATUS _netr_LogonSamLogon(pipes_struct *p, } /************************************************************************* + _netr_LogonSamLogon + *************************************************************************/ + +NTSTATUS _netr_LogonSamLogon(pipes_struct *p, + struct netr_LogonSamLogon *r) +{ + NTSTATUS status; + struct netr_LogonSamLogonWithFlags r2; + uint32_t flags = 0; + + r2.in.server_name = r->in.server_name; + r2.in.computer_name = r->in.computer_name; + r2.in.credential = r->in.credential; + r2.in.logon_level = r->in.logon_level; + r2.in.logon = r->in.logon; + r2.in.validation_level = r->in.validation_level; + r2.in.return_authenticator = r->in.return_authenticator; + r2.in.flags = &flags; + r2.out.validation = r->out.validation; + r2.out.authoritative = r->out.authoritative; + r2.out.flags = &flags; + r2.out.return_authenticator = r->out.return_authenticator; + + status = _netr_LogonSamLogonWithFlags(p, &r2); + + return status; +} + +/************************************************************************* _netr_LogonSamLogonEx - no credential chaining. Map into net sam logon. *************************************************************************/ @@ -1417,16 +1449,6 @@ WERROR _netr_GetForestTrustInformation(pipes_struct *p, /**************************************************************** ****************************************************************/ -NTSTATUS _netr_LogonSamLogonWithFlags(pipes_struct *p, - struct netr_LogonSamLogonWithFlags *r) -{ - p->rng_fault_state = true; - return NT_STATUS_NOT_IMPLEMENTED; -} - -/**************************************************************** -****************************************************************/ - NTSTATUS _netr_ServerGetTrustInfo(pipes_struct *p, struct netr_ServerGetTrustInfo *r) { |