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; }