diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2009-08-13 13:02:28 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2009-08-13 09:16:20 -0400 |
commit | 2e53c10c68a86c33d97936fce02c3c53aad82bfa (patch) | |
tree | 88eb9699c29422737a9ce663319480a17a5db13b /server/providers | |
parent | 7fb74edcde011adef137357c916494409a94f1a1 (diff) | |
download | sssd-2e53c10c68a86c33d97936fce02c3c53aad82bfa.tar.gz sssd-2e53c10c68a86c33d97936fce02c3c53aad82bfa.tar.bz2 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.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/server/providers/data_provider_be.c b/server/providers/data_provider_be.c index c92289b6..24d9105e 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); |