const char *comment;
const char *ldb_syntax;
- WERROR (*drsuapi_to_ldb)(const struct dsdb_schema *schema,
+ WERROR (*drsuapi_to_ldb)(struct ldb_context *ldb,
+ const struct dsdb_schema *schema,
const struct dsdb_attribute *attr,
const struct drsuapi_DsReplicaAttribute *in,
TALLOC_CTX *mem_ctx,
struct ldb_message_element *out);
- WERROR (*ldb_to_drsuapi)(const struct dsdb_schema *schema,
+ WERROR (*ldb_to_drsuapi)(struct ldb_context *ldb,
+ const struct dsdb_schema *schema,
const struct dsdb_attribute *attr,
const struct ldb_message_element *in,
TALLOC_CTX *mem_ctx,
/* internal stuff */
const struct dsdb_syntax *syntax;
+ const struct ldb_schema_attribute *ldb_schema_attribute;
};
struct dsdb_class {
bool defaultHidingValue;
bool isDefunct;
bool systemOnly;
+
+ char **supclasses;
+ char **subclasses;
+ char **subclasses_direct;
+ char **posssuperiors;
};
struct dsdb_schema_oid_prefix {
struct dsdb_attribute *attributes;
struct dsdb_class *classes;
+ /* lists of classes sorted by various attributes, for faster
+ access */
+ uint32_t num_classes;
+ struct dsdb_class **classes_by_lDAPDisplayName;
+ struct dsdb_class **classes_by_governsID_id;
+ struct dsdb_class **classes_by_governsID_oid;
+ struct dsdb_class **classes_by_cn;
+
+ /* lists of attributes sorted by various fields */
+ uint32_t num_attributes;
+ struct dsdb_attribute **attributes_by_lDAPDisplayName;
+ struct dsdb_attribute **attributes_by_attributeID_id;
+ struct dsdb_attribute **attributes_by_attributeID_oid;
+ struct dsdb_attribute **attributes_by_linkID;
+
struct {
bool we_are_master;
struct ldb_dn *master_dn;