diff options
author | Stefan Metzmacher <metze@samba.org> | 2009-12-30 08:23:13 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2010-03-24 17:34:50 +0100 |
commit | ee240799b6d7918afffdd762ead5221283f5dd5d (patch) | |
tree | 1159e0cc7900ddfc931d086a47be7e8fdab65309 /source4/auth/ntlmssp/ntlmssp_client.c | |
parent | a0522a5b2633b644fb16d9bdfc6f07e1bed30a15 (diff) | |
download | samba-ee240799b6d7918afffdd762ead5221283f5dd5d.tar.gz samba-ee240799b6d7918afffdd762ead5221283f5dd5d.tar.bz2 samba-ee240799b6d7918afffdd762ead5221283f5dd5d.zip |
s4:ntlmssp: keep struct gensec_ntlmssp_context in gensec_security->private_data
Inspired by the NTLMSSP merge work by Andrew Bartlett.
metze
Signed-off-by: Günther Deschner <gd@samba.org>
Diffstat (limited to 'source4/auth/ntlmssp/ntlmssp_client.c')
-rw-r--r-- | source4/auth/ntlmssp/ntlmssp_client.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/source4/auth/ntlmssp/ntlmssp_client.c b/source4/auth/ntlmssp/ntlmssp_client.c index b518fa87be..259f07fe00 100644 --- a/source4/auth/ntlmssp/ntlmssp_client.c +++ b/source4/auth/ntlmssp/ntlmssp_client.c @@ -47,7 +47,10 @@ NTSTATUS ntlmssp_client_initial(struct gensec_security *gensec_security, TALLOC_CTX *out_mem_ctx, DATA_BLOB in, DATA_BLOB *out) { - struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data; + struct gensec_ntlmssp_context *gensec_ntlmssp = + talloc_get_type_abort(gensec_security->private_data, + struct gensec_ntlmssp_context); + struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_ntlmssp->ntlmssp_state; const char *domain = gensec_ntlmssp_state->domain; const char *workstation = cli_credentials_get_workstation(gensec_security->credentials); @@ -98,7 +101,10 @@ NTSTATUS ntlmssp_client_challenge(struct gensec_security *gensec_security, TALLOC_CTX *out_mem_ctx, const DATA_BLOB in, DATA_BLOB *out) { - struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data; + struct gensec_ntlmssp_context *gensec_ntlmssp = + talloc_get_type_abort(gensec_security->private_data, + struct gensec_ntlmssp_context); + struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_ntlmssp->ntlmssp_state; uint32_t chal_flags, ntlmssp_command, unkn1, unkn2; DATA_BLOB server_domain_blob; DATA_BLOB challenge_blob; @@ -297,13 +303,16 @@ NTSTATUS ntlmssp_client_challenge(struct gensec_security *gensec_security, NTSTATUS gensec_ntlmssp_client_start(struct gensec_security *gensec_security) { + struct gensec_ntlmssp_context *gensec_ntlmssp; struct gensec_ntlmssp_state *gensec_ntlmssp_state; NTSTATUS nt_status; nt_status = gensec_ntlmssp_start(gensec_security); NT_STATUS_NOT_OK_RETURN(nt_status); - gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data; + gensec_ntlmssp = talloc_get_type_abort(gensec_security->private_data, + struct gensec_ntlmssp_context); + gensec_ntlmssp_state = gensec_ntlmssp->ntlmssp_state; gensec_ntlmssp_state->role = NTLMSSP_CLIENT; @@ -372,8 +381,6 @@ NTSTATUS gensec_ntlmssp_client_start(struct gensec_security *gensec_security) gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_SEAL; } - gensec_security->private_data = gensec_ntlmssp_state; - return NT_STATUS_OK; } |