this is faster than string comparisons during searches at runtime
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Pair-Programmed-With: Amitay Isaacs <amitay@gmail.com>
-enum dsdb_dn_format {
- DSDB_NORMAL_DN,
- DSDB_BINARY_DN,
- DSDB_STRING_DN,
- DSDB_INVALID_DN
-};
-
struct dsdb_dn {
struct ldb_dn *dn;
DATA_BLOB extra_part;
#include "prefixmap.h"
+enum dsdb_dn_format {
+ DSDB_NORMAL_DN,
+ DSDB_BINARY_DN,
+ DSDB_STRING_DN,
+ DSDB_INVALID_DN
+};
+
+
struct dsdb_attribute;
struct dsdb_class;
struct dsdb_schema;
bool systemOnly;
bool one_way_link;
+ enum dsdb_dn_format dn_format;
/* internal stuff */
const struct dsdb_syntax *syntax;
schema_class->posssuperiors = NULL;
}
- /* setup fast access to one_way_link */
+ /* setup fast access to one_way_link and DN format */
for (attribute=schema->attributes; attribute; attribute=attribute->next) {
- if (dsdb_dn_oid_to_format(attribute->syntax->ldap_oid) == DSDB_INVALID_DN) {
+ attribute->dn_format = dsdb_dn_oid_to_format(attribute->syntax->ldap_oid);
+
+ if (attribute->dn_format == DSDB_INVALID_DN) {
attribute->one_way_link = false;
continue;
}
attribute->one_way_link = false;
}
+
return LDB_SUCCESS;
}