diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2013-05-14 18:00:10 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-08-09 15:04:43 +0200 |
commit | 0b9e98122091c5bb6232ea4746decb6fbe2d68c0 (patch) | |
tree | eba8755e80ab04a315a0385d4cea46fac079ebbe /src/providers/ldap/sdap_range.c | |
parent | 6ed0eb3bf1b322a246aad6c3e02a7c3b4619d867 (diff) | |
download | sssd-0b9e98122091c5bb6232ea4746decb6fbe2d68c0.tar.gz sssd-0b9e98122091c5bb6232ea4746decb6fbe2d68c0.tar.xz sssd-0b9e98122091c5bb6232ea4746decb6fbe2d68c0.zip |
Adding option to disable retrieving large AD groups.sssd-1.9.2-113.el6
This commit adds new option ldap_disable_range_retrieval with default value
FALSE. If this option is enabled, large groups(>1500) will not be retrieved and
behaviour will be similar like was before commit ae8d047122c
"LDAP: Handle very large Active Directory groups"
https://fedorahosted.org/sssd/ticket/1823
Diffstat (limited to 'src/providers/ldap/sdap_range.c')
-rw-r--r-- | src/providers/ldap/sdap_range.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/providers/ldap/sdap_range.c b/src/providers/ldap/sdap_range.c index a26443c82..c4bf43539 100644 --- a/src/providers/ldap/sdap_range.c +++ b/src/providers/ldap/sdap_range.c @@ -29,7 +29,8 @@ errno_t sdap_parse_range(TALLOC_CTX *mem_ctx, const char *attr_desc, char **base_attr, - uint32_t *range_offset) + uint32_t *range_offset, + bool disable_range_retrieval) { errno_t ret; TALLOC_CTX *tmp_ctx; @@ -84,6 +85,16 @@ errno_t sdap_parse_range(TALLOC_CTX *mem_ctx, ("[%s] contains sub-attribute other than a range, returning whole\n", attr_desc)); goto done; + } else if (disable_range_retrieval) { + /* This is range sub-attribute, but we want to ignore it. + */ + *base_attr = talloc_strdup(mem_ctx, attr_desc); + if (!*base_attr) { + ret = ENOMEM; + } else { + ret = ECANCELED; + } + goto done; } /* Get the end of the range */ |