diff options
Diffstat (limited to 'src/providers/ldap/ldap_common.c')
-rw-r--r-- | src/providers/ldap/ldap_common.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/providers/ldap/ldap_common.c b/src/providers/ldap/ldap_common.c index 68b8e153d..39e9b71dc 100644 --- a/src/providers/ldap/ldap_common.c +++ b/src/providers/ldap/ldap_common.c @@ -1013,3 +1013,23 @@ bool sdap_is_secure_uri(const char *uri) } return false; } + +char *sdap_get_id_specific_filter(TALLOC_CTX *mem_ctx, + char *base_filter, + char *extra_filter) +{ + char *filter = NULL; + + if (!extra_filter) { + return talloc_strdup(mem_ctx, base_filter); + } + + if (extra_filter[0] == '(') { + filter = talloc_asprintf(mem_ctx, "(&%s%s)", + base_filter, extra_filter); + } else { + filter = talloc_asprintf(mem_ctx, "(&%s(%s))", + base_filter, extra_filter); + } + return filter; /* NULL or not */ +} |