summaryrefslogtreecommitdiffstats
path: root/server/providers
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2009-08-13 13:02:28 +0200
committerStephen Gallagher <sgallagh@redhat.com>2009-08-13 09:16:20 -0400
commit2e53c10c68a86c33d97936fce02c3c53aad82bfa (patch)
tree88eb9699c29422737a9ce663319480a17a5db13b /server/providers
parent7fb74edcde011adef137357c916494409a94f1a1 (diff)
downloadsssd-2e53c10c68a86c33d97936fce02c3c53aad82bfa.tar.gz
sssd-2e53c10c68a86c33d97936fce02c3c53aad82bfa.tar.xz
sssd-2e53c10c68a86c33d97936fce02c3c53aad82bfa.zip
Make "files" a reserved word for legacy local domain
This patch introduces provider=files as a valid provider. Upon loading the backend, its properties in confdb are overwritten to those that represent legacy local domain. Also document this in sssd.conf(5) and example config
Diffstat (limited to 'server/providers')
-rw-r--r--server/providers/data_provider_be.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/server/providers/data_provider_be.c b/server/providers/data_provider_be.c
index c92289b6d..24d9105ef 100644
--- a/server/providers/data_provider_be.c
+++ b/server/providers/data_provider_be.c
@@ -874,6 +874,43 @@ done:
return ret;
}
+/* Some providers are just aliases for more complicated settings,
+ * rewrite the alias into the actual settings */
+static int be_rewrite(struct be_ctx *ctx)
+{
+ int ret;
+ const char *val[2];
+ val[1] = NULL;
+
+ /* "files" is a special case that means:
+ * provider = proxy
+ * libName = files
+ */
+ if (strcasecmp(ctx->name, "files") == 0) {
+ DEBUG(5, ("Rewriting provider %s\n", ctx->name));
+
+ val[0] = "proxy";
+ ret = confdb_add_param(ctx->cdb, true,
+ ctx->conf_path,
+ "provider",
+ val);
+ if (ret) {
+ return ret;
+ }
+
+ val[0] = "files";
+ ret = confdb_add_param(ctx->cdb, true,
+ ctx->conf_path,
+ "libName",
+ val);
+ if (ret) {
+ return ret;
+ }
+ }
+
+ return EOK;
+}
+
int be_process_init(TALLOC_CTX *mem_ctx,
const char *be_name,
const char *be_domain,
@@ -922,6 +959,12 @@ int be_process_init(TALLOC_CTX *mem_ctx,
return ret;
}
+ ret = be_rewrite(ctx);
+ if (ret != EOK) {
+ DEBUG(0, ("error rewriting provider types\n"));
+ return ret;
+ }
+
ret = load_backend_module(ctx, BET_ID,
&ctx->bet_info[BET_ID].bet_ops,
&ctx->bet_info[BET_ID].pvt_bet_data);