diff options
author | Petr Cech <pcech@redhat.com> | 2016-08-24 14:41:09 +0200 |
---|---|---|
committer | Lukas Slebodnik <lslebodn@redhat.com> | 2016-09-13 16:22:26 +0200 |
commit | aef0171e0bdc9a683958d69c7ee984fb10cd5de7 (patch) | |
tree | fc6560ea19e4d1f5a4701c667f98c3691f3fbd25 /src/providers/proxy | |
parent | 6c335dee38da943796710b5e336472a10cf641f2 (diff) | |
download | sssd-aef0171e0bdc9a683958d69c7ee984fb10cd5de7.tar.gz sssd-aef0171e0bdc9a683958d69c7ee984fb10cd5de7.tar.xz sssd-aef0171e0bdc9a683958d69c7ee984fb10cd5de7.zip |
PROXY: Adding proxy_max_children option
The new option 'proxy_max_children' is applicable
in domain section. Default value is 10.
Resolves:
https://fedorahosted.org/sssd/ticket/3153
Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src/providers/proxy')
-rw-r--r-- | src/providers/proxy/proxy_init.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/providers/proxy/proxy_init.c b/src/providers/proxy/proxy_init.c index 1edf4fd64..2241dafb8 100644 --- a/src/providers/proxy/proxy_init.c +++ b/src/providers/proxy/proxy_init.c @@ -29,6 +29,8 @@ #define NSS_FN_NAME "_nss_%s_%s" +#define OPT_MAX_CHILDREN_DEFAULT 10 + #define ERROR_INITGR "The '%s' library does not provides the " \ "_nss_XXX_initgroups_dyn function!\n" \ "initgroups will be slow as it will require " \ @@ -220,6 +222,7 @@ static errno_t proxy_init_auth_ctx(TALLOC_CTX *mem_ctx, struct proxy_auth_ctx *auth_ctx; errno_t ret; int hret; + int max_children; auth_ctx = talloc_zero(mem_ctx, struct proxy_auth_ctx); if (auth_ctx == NULL) { @@ -241,8 +244,23 @@ static errno_t proxy_init_auth_ctx(TALLOC_CTX *mem_ctx, } /* Set up request hash table */ - /* FIXME: get max_children from configuration file */ - auth_ctx->max_children = 10; + ret = confdb_get_int(be_ctx->cdb, be_ctx->conf_path, + CONFDB_PROXY_MAX_CHILDREN, + OPT_MAX_CHILDREN_DEFAULT, + &max_children); + if (ret != EOK) { + DEBUG(SSSDBG_CRIT_FAILURE, + "Unable to read confdb [%d]: %s\n", ret, sss_strerror(ret)); + goto done; + } + + if (max_children < 1) { + DEBUG(SSSDBG_CRIT_FAILURE, + "Option " CONFDB_PROXY_MAX_CHILDREN " must be higher then 0\n"); + ret = EINVAL; + goto done; + } + auth_ctx->max_children = max_children; hret = hash_create(auth_ctx->max_children * 2, &auth_ctx->request_table, NULL, NULL); |