diff options
author | Andrew Bartlett <abartlet@samba.org> | 2012-01-30 11:17:44 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2012-01-30 08:05:14 +0100 |
commit | a647df4607cb6d916cd689f92cd27995ca0f9ab4 (patch) | |
tree | a1a8a5ac0455b62fcd427e75ccebe65251686bcb /source4/auth/ntlmssp | |
parent | 7c6713e78ff22ebf0aa1caa10697bad9d4cc885e (diff) | |
download | samba-a647df4607cb6d916cd689f92cd27995ca0f9ab4.tar.gz samba-a647df4607cb6d916cd689f92cd27995ca0f9ab4.tar.bz2 samba-a647df4607cb6d916cd689f92cd27995ca0f9ab4.zip |
auth: Make check_password and generate_session_info hook generic
gensec_ntlmssp does not need to know the internal form of the
struct user_info_dc or auth_serversupplied_info. This will allow the
calling logic to be put in common.
Andrew Bartlett
Diffstat (limited to 'source4/auth/ntlmssp')
-rw-r--r-- | source4/auth/ntlmssp/ntlmssp_server.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/source4/auth/ntlmssp/ntlmssp_server.c b/source4/auth/ntlmssp/ntlmssp_server.c index dcd6123499..1a876e319f 100644 --- a/source4/auth/ntlmssp/ntlmssp_server.c +++ b/source4/auth/ntlmssp/ntlmssp_server.c @@ -189,25 +189,15 @@ static NTSTATUS auth_ntlmssp_check_password(struct ntlmssp_state *ntlmssp_state, nt_status = auth_context->check_password(auth_context, gensec_ntlmssp, user_info, - &gensec_ntlmssp->user_info_dc); + &gensec_ntlmssp->server_returned_info, + user_session_key, lm_session_key); } talloc_free(user_info); NT_STATUS_NOT_OK_RETURN(nt_status); - if (gensec_ntlmssp->user_info_dc->user_session_key.length) { - DEBUG(10, ("Got NT session key of length %u\n", - (unsigned)gensec_ntlmssp->user_info_dc->user_session_key.length)); - *user_session_key = gensec_ntlmssp->user_info_dc->user_session_key; - talloc_steal(mem_ctx, user_session_key->data); - gensec_ntlmssp->user_info_dc->user_session_key = data_blob_null; - } - if (gensec_ntlmssp->user_info_dc->lm_session_key.length) { - DEBUG(10, ("Got LM session key of length %u\n", - (unsigned)gensec_ntlmssp->user_info_dc->lm_session_key.length)); - *lm_session_key = gensec_ntlmssp->user_info_dc->lm_session_key; - talloc_steal(mem_ctx, lm_session_key->data); - gensec_ntlmssp->user_info_dc->lm_session_key = data_blob_null; - } + talloc_steal(mem_ctx, user_session_key->data); + talloc_steal(mem_ctx, lm_session_key->data); + return nt_status; } @@ -229,10 +219,11 @@ NTSTATUS gensec_ntlmssp_session_info(struct gensec_security *gensec_security, struct gensec_ntlmssp_context *gensec_ntlmssp = talloc_get_type_abort(gensec_security->private_data, struct gensec_ntlmssp_context); - + struct auth_user_info_dc *user_info_dc = talloc_get_type_abort(gensec_ntlmssp->server_returned_info, + struct auth_user_info_dc); nt_status = gensec_generate_session_info(mem_ctx, gensec_security, - gensec_ntlmssp->user_info_dc, + user_info_dc, session_info); NT_STATUS_NOT_OK_RETURN(nt_status); |