From c062b12fbab7807f7c5ce7eabb664ea30fc3dd93 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 8 Sep 2006 04:37:56 +0000 Subject: [PATCH] r18250: Add an ordering of GENSEC modules, so we do preferred modules first. Andrew Bartlett (This used to be commit 0afb4d1992b3c93557dec1e1cdca467efc299853) --- source4/auth/gensec/cyrus_sasl.c | 3 ++- source4/auth/gensec/gensec.h | 11 +++++++++++ source4/auth/gensec/gensec_krb5.c | 6 ++++-- source4/auth/gensec/schannel.c | 3 ++- source4/auth/gensec/spnego.c | 1 + source4/auth/ntlmssp/ntlmssp.c | 3 ++- 6 files changed, 22 insertions(+), 5 deletions(-) diff --git a/source4/auth/gensec/cyrus_sasl.c b/source4/auth/gensec/cyrus_sasl.c index 2cb078ff36e..34037a8087e 100644 --- a/source4/auth/gensec/cyrus_sasl.c +++ b/source4/auth/gensec/cyrus_sasl.c @@ -308,7 +308,8 @@ static const struct gensec_security_ops gensec_sasl_security_ops = { .wrap_packets = gensec_sasl_wrap_packets, .unwrap_packets = gensec_sasl_unwrap_packets, .have_feature = gensec_sasl_have_feature, - .enabled = False, + .enabled = True, + .order = GENSEC_SASL }; int gensec_sasl_log(void *context, diff --git a/source4/auth/gensec/gensec.h b/source4/auth/gensec/gensec.h index 8156866962e..d127ed6734d 100644 --- a/source4/auth/gensec/gensec.h +++ b/source4/auth/gensec/gensec.h @@ -32,6 +32,16 @@ #define GENSEC_OID_KERBEROS5_OLD "1 2 840 48018 1 2 2" #define GENSEC_OID_KERBEROS5_USER2USER "1 2 840 113554 1 2 2 3" +enum gensec_order { + GENSEC_SPNEGO, + GENSEC_GSSAPI, + GENSEC_KRB5, + GENSEC_SCHANNEL, + GENSEC_NTLMSSP, + GENSEC_SASL, + GENSEC_OTHER +}; + struct gensec_security; struct gensec_target { const char *principal; @@ -127,6 +137,7 @@ struct gensec_security_ops { uint32_t feature); BOOL enabled; BOOL kerberos; + enum gensec_order order; }; struct gensec_security_ops_wrapper { diff --git a/source4/auth/gensec/gensec_krb5.c b/source4/auth/gensec/gensec_krb5.c index a63d7c4b1b3..b9a1a0518e6 100644 --- a/source4/auth/gensec/gensec_krb5.c +++ b/source4/auth/gensec/gensec_krb5.c @@ -729,7 +729,8 @@ static const struct gensec_security_ops gensec_fake_gssapi_krb5_security_ops = { .session_info = gensec_krb5_session_info, .have_feature = gensec_krb5_have_feature, .enabled = False, - .kerberos = True + .kerberos = True, + .order = GENSEC_KRB5 }; static const struct gensec_security_ops gensec_krb5_security_ops = { @@ -743,7 +744,8 @@ static const struct gensec_security_ops gensec_krb5_security_ops = { .wrap = gensec_krb5_wrap, .unwrap = gensec_krb5_unwrap, .enabled = True, - .kerberos = True + .kerberos = True, + .order = GENSEC_KRB5 }; NTSTATUS gensec_krb5_init(void) diff --git a/source4/auth/gensec/schannel.c b/source4/auth/gensec/schannel.c index 983b76eafcb..f58233c5281 100644 --- a/source4/auth/gensec/schannel.c +++ b/source4/auth/gensec/schannel.c @@ -255,7 +255,8 @@ static const struct gensec_security_ops gensec_schannel_security_ops = { .session_info = schannel_session_info, .sig_size = schannel_sig_size, .have_feature = schannel_have_feature, - .enabled = True + .enabled = True, + .order = GENSEC_SCHANNEL }; NTSTATUS gensec_schannel_init(void) diff --git a/source4/auth/gensec/spnego.c b/source4/auth/gensec/spnego.c index fa15176e779..1cafa83f4bb 100644 --- a/source4/auth/gensec/spnego.c +++ b/source4/auth/gensec/spnego.c @@ -1040,6 +1040,7 @@ static const struct gensec_security_ops gensec_spnego_security_ops = { .session_info = gensec_spnego_session_info, .have_feature = gensec_spnego_have_feature, .enabled = True, + .order = GENSEC_SPNEGO }; NTSTATUS gensec_spnego_init(void) diff --git a/source4/auth/ntlmssp/ntlmssp.c b/source4/auth/ntlmssp/ntlmssp.c index 136645e546b..de6c4252776 100644 --- a/source4/auth/ntlmssp/ntlmssp.c +++ b/source4/auth/ntlmssp/ntlmssp.c @@ -417,7 +417,8 @@ static const struct gensec_security_ops gensec_ntlmssp_security_ops = { .session_key = gensec_ntlmssp_session_key, .session_info = gensec_ntlmssp_session_info, .have_feature = gensec_ntlmssp_have_feature, - .enabled = True + .enabled = True, + .order = GENSEC_NTLMSSP }; -- 2.34.1