struct dsdb_attribute *a;
unsigned int i;
unsigned int num_int_id;
+ int ret;
/* free all caches */
dsdb_sorted_accessors_free(schema);
dsdb_setup_attribute_shortcuts(ldb, schema);
+ ret = schema_fill_constructed(schema);
+ if (ret != LDB_SUCCESS) {
+ dsdb_sorted_accessors_free(schema);
+ return ret;
+ }
+
return LDB_SUCCESS;
failed:
return ldb_oom(ldb);
}
-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 schema 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 can find it
return ret;
}
- ret = schema_fill_constructed(schema);
- if (ret != LDB_SUCCESS) {
- return ret;
- }
-
old_schema = ldb_get_opaque(ldb, "dsdb_schema");
ret = ldb_set_opaque(ldb, "dsdb_schema", schema);