gensec: Avoid exposing lp_ctx on the API level.
authorJelmer Vernooij <jelmer@samba.org>
Sat, 26 Sep 2009 18:55:18 +0000 (20:55 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Sat, 26 Sep 2009 18:55:18 +0000 (20:55 +0200)
source4/auth/gensec/gensec.c
source4/auth/gensec/gensec.h
source4/auth/gensec/spnego.c
source4/ldap_server/ldap_backend.c

index 1addf937d086a289dd1a302bf2c3b4e4fba59ba0..5df9128d0a67a34c752e6fae85c711fa4af902c8 100644 (file)
@@ -40,10 +40,9 @@ _PUBLIC_ struct gensec_security_ops **gensec_security_all(void)
        return generic_security_ops;
 }
 
-bool gensec_security_ops_enabled(struct gensec_security_ops *ops, 
-                                struct loadparm_context *lp_ctx)
+bool gensec_security_ops_enabled(struct gensec_security_ops *ops, struct gensec_security *security)
 {
-       return lp_parm_bool(lp_ctx, NULL, "gensec", ops->name, ops->enabled);
+       return lp_parm_bool(security->settings->lp_ctx, NULL, "gensec", ops->name, ops->enabled);
 }
 
 /* Sometimes we want to force only kerberos, sometimes we want to
@@ -147,9 +146,8 @@ static const struct gensec_security_ops *gensec_security_by_authtype(struct gens
        }
        backends = gensec_security_mechs(gensec_security, mem_ctx);
        for (i=0; backends && backends[i]; i++) {
-               if (!gensec_security_ops_enabled(backends[i], 
-                                                                                        gensec_security->settings->lp_ctx))
-                   continue;
+               if (!gensec_security_ops_enabled(backends[i], gensec_security))
+                               continue;
                if (backends[i]->auth_type == auth_type) {
                        backend = backends[i];
                        talloc_free(mem_ctx);
@@ -175,7 +173,7 @@ const struct gensec_security_ops *gensec_security_by_oid(struct gensec_security
        for (i=0; backends && backends[i]; i++) {
                if (gensec_security != NULL && 
                                !gensec_security_ops_enabled(backends[i], 
-                                                                                        gensec_security->settings->lp_ctx))
+                                                                                        gensec_security))
                    continue;
                if (backends[i]->oid) {
                        for (j=0; backends[i]->oid[j]; j++) { 
@@ -205,7 +203,7 @@ const struct gensec_security_ops *gensec_security_by_sasl_name(struct gensec_sec
        }
        backends = gensec_security_mechs(gensec_security, mem_ctx);
        for (i=0; backends && backends[i]; i++) {
-               if (!gensec_security_ops_enabled(backends[i], gensec_security->settings->lp_ctx))
+               if (!gensec_security_ops_enabled(backends[i], gensec_security))
                    continue;
                if (backends[i]->sasl_name 
                    && (strcmp(backends[i]->sasl_name, sasl_name) == 0)) {
@@ -232,7 +230,7 @@ static const struct gensec_security_ops *gensec_security_by_name(struct gensec_s
        backends = gensec_security_mechs(gensec_security, mem_ctx);
        for (i=0; backends && backends[i]; i++) {
                if (gensec_security != NULL && 
-                               !gensec_security_ops_enabled(backends[i], gensec_security->settings->lp_ctx))
+                               !gensec_security_ops_enabled(backends[i], gensec_security))
                    continue;
                if (backends[i]->name 
                    && (strcmp(backends[i]->name, name) == 0)) {
@@ -278,7 +276,7 @@ const struct gensec_security_ops **gensec_security_by_sasl_list(struct gensec_se
         * then looking in the supplied list */
        for (i=0; backends && backends[i]; i++) {
                if (gensec_security != NULL &&
-                               !gensec_security_ops_enabled(backends[i], gensec_security->settings->lp_ctx))
+                               !gensec_security_ops_enabled(backends[i], gensec_security))
                    continue;
                for (sasl_idx = 0; sasl_names[sasl_idx]; sasl_idx++) {
                        if (!backends[i]->sasl_name ||
@@ -349,7 +347,7 @@ const struct gensec_security_ops_wrapper *gensec_security_by_oid_list(struct gen
         * then looking in the supplied list */
        for (i=0; backends && backends[i]; i++) {
                if (gensec_security != NULL && 
-                               !gensec_security_ops_enabled(backends[i], gensec_security->settings->lp_ctx))
+                               !gensec_security_ops_enabled(backends[i], gensec_security))
                    continue;
                if (!backends[i]->oid) {
                        continue;
@@ -418,7 +416,7 @@ const char **gensec_security_oids_from_ops(struct gensec_security *gensec_securi
        
        for (i=0; ops && ops[i]; i++) {
                if (gensec_security != NULL && 
-                       !gensec_security_ops_enabled(ops[i], gensec_security->settings->lp_ctx)) {
+                       !gensec_security_ops_enabled(ops[i], gensec_security)) {
                        continue;
                }
                if (!ops[i]->oid) {
index 3b27e0f7331e89fd40dae9e126a61d1568989806..8c1716e07402a4374bd23e50557a04653fc0be54 100644 (file)
@@ -304,7 +304,7 @@ NTSTATUS gensec_wrap(struct gensec_security *gensec_security,
                     DATA_BLOB *out);
 
 struct gensec_security_ops **gensec_security_all(void);
-bool gensec_security_ops_enabled(struct gensec_security_ops *ops, struct loadparm_context *lp_ctx);
+bool gensec_security_ops_enabled(struct gensec_security_ops *ops, struct gensec_security *security);
 struct gensec_security_ops **gensec_use_kerberos_mechs(TALLOC_CTX *mem_ctx, 
                                                       struct gensec_security_ops **old_gensec_list, 
                                                       struct cli_credentials *creds);
index 977d52ec10798b1686a86fc561b46551ab82290e..a715085d06907e696cc088888ed5e517d3c7e7d7 100644 (file)
@@ -338,7 +338,7 @@ static NTSTATUS gensec_spnego_server_try_fallback(struct gensec_security *gensec
                NTSTATUS nt_status;
 
                if (gensec_security != NULL && 
-                               !gensec_security_ops_enabled(all_ops[i], gensec_security->settings->lp_ctx))
+                               !gensec_security_ops_enabled(all_ops[i], gensec_security))
                    continue;
 
                if (!all_ops[i]->oid) {
index a318e265b78d9f0f2c7e60aff9e03e61a6618b37..383c5bc4bf09ff8e096141c2d12955239cb94f4e 100644 (file)
@@ -195,7 +195,7 @@ NTSTATUS ldapsrv_backend_Init(struct ldapsrv_connection *conn)
                        = gensec_use_kerberos_mechs(conn, backends, conn->server_credentials);
                int i, j = 0;
                for (i = 0; ops && ops[i]; i++) {
-                       if (!gensec_security_ops_enabled(ops[i], conn->lp_ctx))
+                       if (!lp_parm_bool(conn->lp_ctx,  NULL, "gensec", ops[i]->name, ops[i]->enabled))
                                continue;
 
                        if (ops[i]->sasl_name && ops[i]->server_start) {