summaryrefslogtreecommitdiffstats
path: root/src/providers/ldap/ldap_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/providers/ldap/ldap_common.c')
-rw-r--r--src/providers/ldap/ldap_common.c20
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 */
+}