r25446: Merge some changes I made on the way home from SFO:
[kai/samba.git] / source4 / auth / gensec / gensec.c
index 052eed1363d1daa8a1eb5004e34d2c081b159955..9bbf31a7c797f52399b344f47f9cb64db6768afa 100644 (file)
@@ -47,10 +47,15 @@ struct gensec_security_ops **gensec_security_all(void)
 
 struct gensec_security_ops **gensec_use_kerberos_mechs(TALLOC_CTX *mem_ctx, 
                                                       struct gensec_security_ops **old_gensec_list, 
-                                                      enum credentials_use_kerberos use_kerberos) 
+                                                      struct cli_credentials *creds)
 {
        struct gensec_security_ops **new_gensec_list;
        int i, j, num_mechs_in;
+       enum credentials_use_kerberos use_kerberos = CRED_AUTO_USE_KERBEROS;
+
+       if (creds) {
+               use_kerberos = cli_credentials_get_kerberos_state(creds);
+       }
 
        if (use_kerberos == CRED_AUTO_USE_KERBEROS) {
                if (!talloc_reference(mem_ctx, old_gensec_list)) {
@@ -112,7 +117,6 @@ struct gensec_security_ops **gensec_security_mechs(struct gensec_security *gense
                }
                return backends;
        } else {
-               enum credentials_use_kerberos use_kerberos;
                struct cli_credentials *creds = gensec_get_credentials(gensec_security);
                if (!creds) {
                        if (!talloc_reference(mem_ctx, backends)) {
@@ -120,8 +124,7 @@ struct gensec_security_ops **gensec_security_mechs(struct gensec_security *gense
                        }
                        return backends;
                }
-               use_kerberos = cli_credentials_get_kerberos_state(creds);
-               return gensec_use_kerberos_mechs(mem_ctx, backends, use_kerberos);
+               return gensec_use_kerberos_mechs(mem_ctx, backends, creds);
        }
 }
 
@@ -1105,7 +1108,7 @@ _PUBLIC_ NTSTATUS gensec_set_target_hostname(struct gensec_security *gensec_secu
 _PUBLIC_ const char *gensec_get_target_hostname(struct gensec_security *gensec_security) 
 {
        /* We allow the target hostname to be overriden for testing purposes */
-       const char *target_hostname = lp_parm_string(NULL, "gensec", "target_hostname");
+       const char *target_hostname = lp_parm_string(global_loadparm, NULL, "gensec", "target_hostname");
        if (target_hostname) {
                return target_hostname;
        }
@@ -1203,7 +1206,7 @@ const char *gensec_get_target_principal(struct gensec_security *gensec_security)
 */
 NTSTATUS gensec_register(const struct gensec_security_ops *ops)
 {
-       if (!lp_parm_bool(NULL, "gensec", ops->name, ops->enabled)) {
+       if (!lp_parm_bool(global_loadparm, NULL, "gensec", ops->name, ops->enabled)) {
                DEBUG(2,("gensec subsystem %s is disabled\n", ops->name));
                return NT_STATUS_OK;
        }
@@ -1266,7 +1269,7 @@ NTSTATUS gensec_init(void)
        if (initialized) return NT_STATUS_OK;
        initialized = True;
        
-       shared_init = load_samba_modules(NULL, "gensec");
+       shared_init = load_samba_modules(NULL, global_loadparm, "gensec");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);