r18250: Add an ordering of GENSEC modules, so we do preferred modules first.
authorAndrew Bartlett <abartlet@samba.org>
Fri, 8 Sep 2006 04:37:56 +0000 (04:37 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:17:55 +0000 (14:17 -0500)
Andrew Bartlett
(This used to be commit 0afb4d1992b3c93557dec1e1cdca467efc299853)

source4/auth/gensec/cyrus_sasl.c
source4/auth/gensec/gensec.h
source4/auth/gensec/gensec_krb5.c
source4/auth/gensec/schannel.c
source4/auth/gensec/spnego.c
source4/auth/ntlmssp/ntlmssp.c

index 2cb078ff36e4ab706ecc1188ce2b0d9552a7d0ae..34037a8087eb4f57d8cce61e016fbcc3824c47bf 100644 (file)
@@ -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, 
index 8156866962e6f0261b56380a57da89cf034ad526..d127ed6734d5f62ecf23d4354981780ede5ef052 100644 (file)
 #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 {
index a63d7c4b1b3e8b1ccd43340428be18d9efc64550..b9a1a0518e65d8177c59384dfb5ad12f8bfc1dcd 100644 (file)
@@ -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)
index 983b76eafcbcfa86c3b08136ab268dd6f8050643..f58233c528121a053631535c446906c6ac66954e 100644 (file)
@@ -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)
index fa15176e779d098a4b171fb2c1aa0b634607c0dd..1cafa83f4bb17b65bce147e62bdd56a7396babec 100644 (file)
@@ -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)
index 136645e546b73185d95bd37b566c75f4bfc56109..de6c42527767c3e2b3f517da26d4b53d1894b557 100644 (file)
@@ -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
 };