diff options
author | Stefan Metzmacher <metze@samba.org> | 2017-05-16 00:01:07 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2017-06-17 16:48:11 +0200 |
commit | 4b88f6a88c3f35a54c59102bc4595427ae3a2a65 (patch) | |
tree | dbc739ec51771597604cf8aa27c51e7df3ab2997 /source4/libcli | |
parent | c3a47ceab43989ccc513c16cd9c65b339ebb9f2f (diff) | |
download | samba-4b88f6a88c3f35a54c59102bc4595427ae3a2a65.tar.gz |
s4:libcli/smb_composite: simplify gensec_update_ev() handling in session_setup_spnego()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/libcli')
-rw-r--r-- | source4/libcli/smb_composite/sesssetup.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/source4/libcli/smb_composite/sesssetup.c b/source4/libcli/smb_composite/sesssetup.c index 9f989f21f2c..7f748c177b2 100644 --- a/source4/libcli/smb_composite/sesssetup.c +++ b/source4/libcli/smb_composite/sesssetup.c @@ -519,19 +519,22 @@ static NTSTATUS session_setup_spnego(struct composite_context *c, return status; } + state->setup.spnego.out.secblob = + session->transport->negotiate.secblob; if (session->transport->negotiate.secblob.length) { chosen_oid = GENSEC_OID_SPNEGO; status = gensec_start_mech_by_oid(session->gensec, chosen_oid); if (!NT_STATUS_IS_OK(status)) { DEBUG(1, ("Failed to start set GENSEC client mechanism %s: %s\n", gensec_get_name_by_oid(session->gensec, chosen_oid), nt_errstr(status))); + state->setup.spnego.out.secblob = data_blob_null; chosen_oid = GENSEC_OID_NTLMSSP; status = gensec_start_mech_by_oid(session->gensec, chosen_oid); if (!NT_STATUS_IS_OK(status)) { DEBUG(1, ("Failed to start set (fallback) GENSEC client mechanism %s: %s\n", gensec_get_name_by_oid(session->gensec, chosen_oid), nt_errstr(status))); - return status; + return status; } } } else { @@ -544,18 +547,10 @@ static NTSTATUS session_setup_spnego(struct composite_context *c, } } - if (strequal(chosen_oid, GENSEC_OID_SPNEGO)) { - status = gensec_update_ev(session->gensec, state, - c->event_ctx, - session->transport->negotiate.secblob, - &state->setup.spnego.in.secblob); - } else { - status = gensec_update_ev(session->gensec, state, - c->event_ctx, - data_blob(NULL, 0), - &state->setup.spnego.in.secblob); - - } + status = gensec_update_ev(session->gensec, state, + c->event_ctx, + state->setup.spnego.out.secblob, + &state->setup.spnego.in.secblob); if (!NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED) && !NT_STATUS_IS_OK(status)) { |