diff options
author | Jeremy Allison <jra@samba.org> | 2008-12-18 15:40:05 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-12-18 15:40:05 -0800 |
commit | 4283ae489b6e227beba196e8a315a9727f03cc07 (patch) | |
tree | 7308561653b9e52eab8fc13181c0ad41ae2da208 /source4/lib/ldb/common/ldb_attributes.c | |
parent | f9bb8fbe832409893b17f2113d7b35b9ffe91540 (diff) | |
parent | d031472227b44d040698e6dff52dc79028fde854 (diff) | |
download | samba-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.c | 47 |
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; +} + |