diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2014-08-10 18:59:40 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-08-13 15:10:30 +0200 |
commit | f3a5ac1a50c1fccd0801023658e42d2093e1a33a (patch) | |
tree | 273ce39f9b428016f18ff123f546c3c81c560f89 /src/responder/common | |
parent | 1f3127e88a87953f059c9a70d3582ae1719594b1 (diff) | |
download | sssd-f3a5ac1a50c1fccd0801023658e42d2093e1a33a.tar.gz sssd-f3a5ac1a50c1fccd0801023658e42d2093e1a33a.tar.xz sssd-f3a5ac1a50c1fccd0801023658e42d2093e1a33a.zip |
Make the space override responder-agnostic
https://fedorahosted.org/sssd/ticket/2397
In order to make the override_space option usable by other responders,
we need to move the override_space option to the generic responder
structure.
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
Diffstat (limited to 'src/responder/common')
-rw-r--r-- | src/responder/common/responder.h | 1 | ||||
-rw-r--r-- | src/responder/common/responder_common.c | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/responder/common/responder.h b/src/responder/common/responder.h index 167f45cb1..3674d13f2 100644 --- a/src/responder/common/responder.h +++ b/src/responder/common/responder.h @@ -102,6 +102,7 @@ struct resp_ctx { uid_t *allowed_uids; char *default_domain; + char override_space; void *pvt_ctx; diff --git a/src/responder/common/responder_common.c b/src/responder/common/responder_common.c index 2f9db70ce..a0c476e1d 100644 --- a/src/responder/common/responder_common.c +++ b/src/responder/common/responder_common.c @@ -781,6 +781,7 @@ int sss_process_init(TALLOC_CTX *mem_ctx, struct resp_ctx *rctx; struct sss_domain_info *dom; int ret; + char *tmp = NULL; rctx = talloc_zero(mem_ctx, struct resp_ctx); if (!rctx) { @@ -844,6 +845,26 @@ int sss_process_init(TALLOC_CTX *mem_ctx, goto fail; } + ret = confdb_get_string(rctx->cdb, rctx, CONFDB_MONITOR_CONF_ENTRY, + CONFDB_MONITOR_OVERRIDE_SPACE, NULL, + &tmp); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, + "Cannnot get the space substitution character [%d]: %s\n", + ret, strerror(ret)); + goto fail; + } + + if (tmp != NULL) { + if (strlen(tmp) > 1) { + DEBUG(SSSDBG_MINOR_FAILURE, "Option %s is longer than 1 character " + "only the first character %c will be used\n", + CONFDB_MONITOR_OVERRIDE_SPACE, tmp[0]); + } + + rctx->override_space = tmp[0]; + } + ret = sss_monitor_init(rctx, rctx->ev, monitor_intf, svc_name, svc_version, rctx, &rctx->mon_conn); |