summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/tldap_util.h1
-rw-r--r--source3/lib/tldap_util.c11
2 files changed, 12 insertions, 0 deletions
diff --git a/source3/include/tldap_util.h b/source3/include/tldap_util.h
index 00916f51f3..eb6b8f6d22 100644
--- a/source3/include/tldap_util.h
+++ b/source3/include/tldap_util.h
@@ -64,5 +64,6 @@ struct tldap_message *tldap_rootdse(struct tldap_context *ld);
bool tldap_entry_has_attrvalue(struct tldap_message *msg,
const char *attribute,
const DATA_BLOB blob);
+bool tldap_supports_control(struct tldap_context *ld, const char *oid);
#endif
diff --git a/source3/lib/tldap_util.c b/source3/lib/tldap_util.c
index e217cccd0b..5f85e7a113 100644
--- a/source3/lib/tldap_util.c
+++ b/source3/lib/tldap_util.c
@@ -527,3 +527,14 @@ bool tldap_entry_has_attrvalue(struct tldap_message *msg,
}
return false;
}
+
+bool tldap_supports_control(struct tldap_context *ld, const char *oid)
+{
+ struct tldap_message *rootdse = tldap_rootdse(ld);
+
+ if (rootdse == NULL) {
+ return false;
+ }
+ return tldap_entry_has_attrvalue(rootdse, "supportedControl",
+ data_blob_const(oid, strlen(oid)));
+}