]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:libcli/smb_composite: move chosen_oid to state->chosen_oid
authorStefan Metzmacher <metze@samba.org>
Wed, 14 Jun 2017 21:24:10 +0000 (23:24 +0200)
committerStefan Metzmacher <metze@samba.org>
Sat, 17 Jun 2017 14:48:11 +0000 (16:48 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/libcli/smb_composite/sesssetup.c

index 7f748c177b276bc41f66324cd6e3217a2c0cd210..256d12b18bd75586799eeab6d65fc2f409151ca4 100644 (file)
@@ -35,6 +35,7 @@
 
 struct sesssetup_state {
        union smb_sesssetup setup;
+       const char *chosen_oid;
        NTSTATUS remote_status;
        NTSTATUS gensec_status;
        struct smb_composite_sesssetup *io;
@@ -522,28 +523,36 @@ static NTSTATUS session_setup_spnego(struct composite_context *c,
        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);
+               state->chosen_oid = GENSEC_OID_SPNEGO;
+               status = gensec_start_mech_by_oid(session->gensec,
+                                                 state->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)));
+                                 gensec_get_name_by_oid(session->gensec,
+                                                        state->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);
+                       state->chosen_oid = GENSEC_OID_NTLMSSP;
+                       status = gensec_start_mech_by_oid(session->gensec,
+                                                         state->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), 
+                                         gensec_get_name_by_oid(session->gensec,
+                                                                state->chosen_oid),
                                          nt_errstr(status)));
                                return status;
                        }
                }
        } else {
                /* without a sec blob, means raw NTLMSSP */
-               chosen_oid = GENSEC_OID_NTLMSSP;
-               status = gensec_start_mech_by_oid(session->gensec, chosen_oid);
+               state->chosen_oid = GENSEC_OID_NTLMSSP;
+               status = gensec_start_mech_by_oid(session->gensec,
+                                                 state->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)));
+                                 gensec_get_name_by_oid(session->gensec,
+                                                        state->chosen_oid),
+                                 nt_errstr(status)));
                }
        }
 
@@ -555,7 +564,8 @@ static NTSTATUS session_setup_spnego(struct composite_context *c,
        if (!NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED) && 
            !NT_STATUS_IS_OK(status)) {
                DEBUG(1, ("Failed initial gensec_update with mechanism %s: %s\n",
-                         gensec_get_name_by_oid(session->gensec, chosen_oid), 
+                         gensec_get_name_by_oid(session->gensec,
+                                                state->chosen_oid),
                          nt_errstr(status)));
                return status;
        }