From: Günther Deschner Date: Thu, 13 Aug 2009 06:58:37 +0000 (+0200) Subject: s3-ntlmssp: use NEGOTIATE_MESSAGE in ntlmssp_client_initial(). X-Git-Url: http://git.samba.org/?p=idra%2Fsamba.git;a=commitdiff_plain;h=refs%2Fheads%2Fntlmssp s3-ntlmssp: use NEGOTIATE_MESSAGE in ntlmssp_client_initial(). Guenther Signed-off-by: Simo Sorce --- diff --git a/source3/libsmb/ntlmssp.c b/source3/libsmb/ntlmssp.c index a0dc39be3e6..a4802bdbad2 100644 --- a/source3/libsmb/ntlmssp.c +++ b/source3/libsmb/ntlmssp.c @@ -883,6 +883,9 @@ NTSTATUS ntlmssp_server_start(TALLOC_CTX *mem_ctx, static NTSTATUS ntlmssp_client_initial(struct ntlmssp_state *ntlmssp_state, DATA_BLOB reply, DATA_BLOB *next_request) { + NTSTATUS status; + struct NEGOTIATE_MESSAGE negotiate; + if (ntlmssp_state->unicode) { ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_UNICODE; } else { @@ -893,27 +896,19 @@ static NTSTATUS ntlmssp_client_initial(struct ntlmssp_state *ntlmssp_state, ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_NTLM2; } - /* generate the ntlmssp negotiate packet */ - msrpc_gen(ntlmssp_state, next_request, "CddAA", - "NTLMSSP", - NTLMSSP_NEGOTIATE, - ntlmssp_state->neg_flags, - ntlmssp_state->client.netbios_domain, - ntlmssp_state->client.netbios_name); + negotiate.NegotiateFlags = ntlmssp_state->neg_flags; + negotiate.DomainName = ntlmssp_state->client.netbios_domain; + negotiate.Workstation = ntlmssp_state->client.netbios_name; + + status = ntlmssp_push_NEGOTIATE_MESSAGE(next_request, + ntlmssp_state, + &negotiate); + if (!NT_STATUS_IS_OK(status)) { + return status; + } if (DEBUGLEVEL >= 10) { - struct NEGOTIATE_MESSAGE *negotiate = talloc( - talloc_tos(), struct NEGOTIATE_MESSAGE); - if (negotiate != NULL) { - NTSTATUS status; - status = ntlmssp_pull_NEGOTIATE_MESSAGE( - next_request, negotiate, negotiate); - if (NT_STATUS_IS_OK(status)) { - NDR_PRINT_DEBUG(NEGOTIATE_MESSAGE, - negotiate); - } - TALLOC_FREE(negotiate); - } + NDR_PRINT_DEBUG(NEGOTIATE_MESSAGE, &negotiate); } ntlmssp_state->expected_state = NTLMSSP_CHALLENGE;