summaryrefslogtreecommitdiff
path: root/source4/dsdb/schema/schema_set.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/dsdb/schema/schema_set.c')
-rw-r--r--source4/dsdb/schema/schema_set.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/source4/dsdb/schema/schema_set.c b/source4/dsdb/schema/schema_set.c
index 725fe845ad..dcaeb4fc89 100644
--- a/source4/dsdb/schema/schema_set.c
+++ b/source4/dsdb/schema/schema_set.c
@@ -309,6 +309,23 @@ failed:
return LDB_ERR_OPERATIONS_ERROR;
}
+int dsdb_setup_schema_inversion(struct ldb_context *ldb, struct dsdb_schema *schema)
+{
+ /* Walk the list of schema classes */
+
+ /* For each subClassOf, add us to subclasses of the parent */
+
+ /* collect these subclasses into a recursive list of total subclasses, preserving order */
+
+ /* For each subclass under 'top', write the index from it's
+ * order as an integer in the dsdb_class (for sorting
+ * objectClass lists efficiently) */
+
+ /* Walk the list of scheam classes */
+
+ /* Create a 'total possible superiors' on each class */
+ return LDB_SUCCESS;
+}
/**
* Attach the schema to an opaque pointer on the ldb, so ldb modules
@@ -324,6 +341,8 @@ int dsdb_set_schema(struct ldb_context *ldb, struct dsdb_schema *schema)
return ret;
}
+ schema_fill_constructed(schema);
+
ret = ldb_set_opaque(ldb, "dsdb_schema", schema);
if (ret != LDB_SUCCESS) {
return ret;