Author: abartlet
Date: 2006-09-08 04:36:41 +0000 (Fri, 08 Sep 2006)
New Revision: 18249

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=18249

Log:
Keep trying to start an GENSEC mech from the list until one actually
starts.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/auth/gensec/gensec.c


Changeset:
Modified: branches/SAMBA_4_0/source/auth/gensec/gensec.c
===================================================================
--- branches/SAMBA_4_0/source/auth/gensec/gensec.c      2006-09-08 04:36:00 UTC 
(rev 18248)
+++ branches/SAMBA_4_0/source/auth/gensec/gensec.c      2006-09-08 04:36:41 UTC 
(rev 18249)
@@ -727,11 +727,12 @@
  */
 
 _PUBLIC_ NTSTATUS gensec_start_mech_by_sasl_list(struct gensec_security 
*gensec_security, 
-                                       const char **sasl_names) 
+                                                const char **sasl_names) 
 {
        NTSTATUS nt_status;
        TALLOC_CTX *mem_ctx = talloc_new(gensec_security);
        const struct gensec_security_ops **ops;
+       int i;
        if (!mem_ctx) {
                return NT_STATUS_NO_MEMORY;
        }
@@ -743,7 +744,12 @@
                talloc_free(mem_ctx);
                return NT_STATUS_INVALID_PARAMETER;
        }
-       nt_status = gensec_start_mech_by_ops(gensec_security, ops[0]);
+       for (i=0; ops[i]; i++) {
+               nt_status = gensec_start_mech_by_ops(gensec_security, ops[i]);
+               if (!NT_STATUS_EQUAL(nt_status, NT_STATUS_INVALID_PARAMETER)) {
+                       break;
+               }
+       }
        talloc_free(mem_ctx);
        return nt_status;
 }

Reply via email to