summaryrefslogtreecommitdiffstats
path: root/src/confdb
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2015-04-29 19:41:14 +0200
committerJakub Hrozek <jhrozek@redhat.com>2015-06-08 13:27:06 +0200
commitee8b34f7a5c885b228678bf205dbc0c84be1afe2 (patch)
tree26afa0d7b657b464d0320461021667aba8adee66 /src/confdb
parent798cc692b5452b1711fb25f801ee9b3541a57a3c (diff)
downloadsssd-ee8b34f7a5c885b228678bf205dbc0c84be1afe2.tar.gz
sssd-ee8b34f7a5c885b228678bf205dbc0c84be1afe2.tar.xz
sssd-ee8b34f7a5c885b228678bf205dbc0c84be1afe2.zip
confdb: Add new option subdomain_inherit
Adds a new option subdomain_inherit that would allow administrators to pick and choose which option to pass to subdomains. This option is required for: https://fedorahosted.org/sssd/ticket/2644 as a short-term fix. The proper solution is described in: https://fedorahosted.org/sssd/ticket/2599 Reviewed-by: Pavel Reichl <preichl@redhat.com> (cherry picked from commit 1711cbfd2e36d44af1ae50e3a2beeec3a1f0b5e8) (cherry picked from commit da2d33f81746a9bf8abd97becaf17005e4f89d2c)
Diffstat (limited to 'src/confdb')
-rw-r--r--src/confdb/confdb.c13
-rw-r--r--src/confdb/confdb.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/src/confdb/confdb.c b/src/confdb/confdb.c
index dd93410cf..9ce7b1311 100644
--- a/src/confdb/confdb.c
+++ b/src/confdb/confdb.c
@@ -1216,6 +1216,19 @@ static int confdb_get_domain_internal(struct confdb_ctx *cdb,
}
}
+ tmp = ldb_msg_find_attr_as_string(res->msgs[0],
+ CONFDB_DOMAIN_SUBDOMAIN_INHERIT,
+ NULL);
+ if (tmp != NULL) {
+ ret = split_on_separator(domain, tmp, ',', true, true,
+ &domain->sd_inherit, NULL);
+ if (ret != 0) {
+ DEBUG(SSSDBG_FATAL_FAILURE,
+ "Cannot parse %s\n", CONFDB_SUBDOMAIN_ENUMERATE);
+ goto done;
+ }
+ }
+
ret = get_entry_as_uint32(res->msgs[0], &domain->subdomain_refresh_interval,
CONFDB_DOMAIN_SUBDOMAIN_REFRESH, 14400);
if (ret != EOK || domain->subdomain_refresh_interval == 0) {
diff --git a/src/confdb/confdb.h b/src/confdb/confdb.h
index 19c564020..e97c46b34 100644
--- a/src/confdb/confdb.h
+++ b/src/confdb/confdb.h
@@ -184,6 +184,7 @@
#define CONFDB_DOMAIN_PWD_EXPIRATION_WARNING "pwd_expiration_warning"
#define CONFDB_DOMAIN_REFRESH_EXPIRED_INTERVAL "refresh_expired_interval"
#define CONFDB_DOMAIN_OFFLINE_TIMEOUT "offline_timeout"
+#define CONFDB_DOMAIN_SUBDOMAIN_INHERIT "subdomain_inherit"
/* Local Provider */
#define CONFDB_LOCAL_DEFAULT_SHELL "default_shell"
@@ -264,6 +265,7 @@ struct sss_domain_info {
struct sss_domain_info *next;
bool disabled;
+ char **sd_inherit;
};
/**