summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/common/ldb_attributes.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-12-18 15:40:05 -0800
committerJeremy Allison <jra@samba.org>2008-12-18 15:40:05 -0800
commit4283ae489b6e227beba196e8a315a9727f03cc07 (patch)
tree7308561653b9e52eab8fc13181c0ad41ae2da208 /source4/lib/ldb/common/ldb_attributes.c
parentf9bb8fbe832409893b17f2113d7b35b9ffe91540 (diff)
parentd031472227b44d040698e6dff52dc79028fde854 (diff)
downloadsamba-4283ae489b6e227beba196e8a315a9727f03cc07.tar.gz
samba-4283ae489b6e227beba196e8a315a9727f03cc07.tar.bz2
samba-4283ae489b6e227beba196e8a315a9727f03cc07.zip
Merge branch 'master' of ssh://jra@git.samba.org/data/git/samba
Diffstat (limited to 'source4/lib/ldb/common/ldb_attributes.c')
-rw-r--r--source4/lib/ldb/common/ldb_attributes.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/source4/lib/ldb/common/ldb_attributes.c b/source4/lib/ldb/common/ldb_attributes.c
index 747f241781..48f9e11caf 100644
--- a/source4/lib/ldb/common/ldb_attributes.c
+++ b/source4/lib/ldb/common/ldb_attributes.c
@@ -225,3 +225,50 @@ int ldb_setup_wellknown_attributes(struct ldb_context *ldb)
return LDB_SUCCESS;
}
+
+/*
+ add a extended dn syntax to the ldb_schema
+*/
+int ldb_dn_extended_add_syntax(struct ldb_context *ldb,
+ unsigned flags,
+ const struct ldb_dn_extended_syntax *syntax)
+{
+ int n;
+ struct ldb_dn_extended_syntax *a;
+
+ if (!syntax) {
+ return LDB_ERR_OPERATIONS_ERROR;
+ }
+
+ n = ldb->schema.num_dn_extended_syntax + 1;
+
+ a = talloc_realloc(ldb, ldb->schema.dn_extended_syntax,
+ struct ldb_dn_extended_syntax, n);
+
+ if (!a) {
+ return LDB_ERR_OPERATIONS_ERROR;
+ }
+
+ a[ldb->schema.num_dn_extended_syntax] = *syntax;
+ ldb->schema.dn_extended_syntax = a;
+
+ ldb->schema.num_dn_extended_syntax = n;
+
+ return 0;
+}
+
+/*
+ return the extended dn syntax for a given name
+*/
+const struct ldb_dn_extended_syntax *ldb_dn_extended_syntax_by_name(struct ldb_context *ldb,
+ const char *name)
+{
+ int i;
+ for (i=0; i < ldb->schema.num_dn_extended_syntax; i++) {
+ if (ldb_attr_cmp(ldb->schema.dn_extended_syntax[i].name, name) == 0) {
+ return &ldb->schema.dn_extended_syntax[i];
+ }
+ }
+ return NULL;
+}
+