Samba4/DSDB: Difference between revisions
From SambaWiki
No edit summary |
|||
(One intermediate revision by the same user not shown) | |||
Line 45: | Line 45: | ||
const struct dsdb_syntax *syntax; |
const struct dsdb_syntax *syntax; |
||
const struct ldb_schema_attribute *ldb_schema_attribute; |
const struct ldb_schema_attribute *ldb_schema_attribute; |
||
}; |
|||
</pre> |
|||
== dsdb_class == |
|||
<pre> |
|||
struct dsdb_class { |
|||
struct dsdb_class *prev, *next; |
|||
const char *cn; |
|||
const char *lDAPDisplayName; |
|||
const char *governsID_oid; |
|||
uint32_t governsID_id; |
|||
struct GUID schemaIDGUID; |
|||
uint32_t objectClassCategory; |
|||
const char *rDNAttID; |
|||
const char *defaultObjectCategory; |
|||
const char *subClassOf; |
|||
const char **systemAuxiliaryClass; |
|||
const char **systemPossSuperiors; |
|||
const char **systemMustContain; |
|||
const char **systemMayContain; |
|||
const char **auxiliaryClass; |
|||
const char **possSuperiors; |
|||
const char **mustContain; |
|||
const char **mayContain; |
|||
const char **possibleInferiors; |
|||
const char **systemPossibleInferiors; |
|||
const char *defaultSecurityDescriptor; |
|||
uint32_t schemaFlagsEx; |
|||
struct ldb_val msDs_Schema_Extensions; |
|||
bool showInAdvancedViewOnly; |
|||
const char *adminDisplayName; |
|||
const char *adminDescription; |
|||
const char *classDisplayName; |
|||
bool defaultHidingValue; |
|||
bool isDefunct; |
|||
bool systemOnly; |
|||
char **supclasses; |
|||
char **subclasses; |
|||
char **subclasses_direct; |
|||
char **posssuperiors; |
|||
uint32_t subClassOf_id; |
|||
uint32_t *systemAuxiliaryClass_ids; |
|||
uint32_t *auxiliaryClass_ids; |
|||
uint32_t *systemMayContain_ids; |
|||
uint32_t *systemMustContain_ids; |
|||
uint32_t *possSuperiors_ids; |
|||
uint32_t *mustContain_ids; |
|||
uint32_t *mayContain_ids; |
|||
uint32_t *systemPossSuperiors_ids; |
|||
/* An ordered index showing how this subClass fits into the |
|||
* subClass tree. that is, an objectclass that is not |
|||
* subClassOf anything is 0 (just in case), and top is 1, and |
|||
* subClasses of top are 2, subclasses of those classes are |
|||
* 3 */ |
|||
uint32_t subClass_order; |
|||
}; |
|||
</pre> |
|||
== dsdb_schema == |
|||
<pre> |
|||
struct dsdb_schema { |
|||
uint32_t num_prefixes; |
|||
struct dsdb_schema_oid_prefix *prefixes; |
|||
/* |
|||
* the last element of the prefix mapping table isn't a oid, |
|||
* it starts with 0xFF and has 21 bytes and is maybe a schema |
|||
* version number |
|||
* |
|||
* this is the content of the schemaInfo attribute of the |
|||
* Schema-Partition head object. |
|||
*/ |
|||
const char *schema_info; |
|||
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; |
|||
} fsmo; |
|||
struct smb_iconv_convenience *iconv_convenience; |
|||
}; |
}; |
||
</pre> |
</pre> |
Latest revision as of 21:54, 22 October 2009
Structures
dsdb_attribute
struct dsdb_attribute { struct dsdb_attribute *prev, *next; const char *cn; const char *lDAPDisplayName; const char *attributeID_oid; uint32_t attributeID_id; struct GUID schemaIDGUID; uint32_t mAPIID; struct GUID attributeSecurityGUID; uint32_t searchFlags; uint32_t systemFlags; bool isMemberOfPartialAttributeSet; uint32_t linkID; const char *attributeSyntax_oid; uint32_t attributeSyntax_id; uint32_t oMSyntax; struct ldb_val oMObjectClass; bool isSingleValued; uint32_t *rangeLower; uint32_t *rangeUpper; bool extendedCharsAllowed; uint32_t schemaFlagsEx; struct ldb_val msDs_Schema_Extensions; bool showInAdvancedViewOnly; const char *adminDisplayName; const char *adminDescription; const char *classDisplayName; bool isEphemeral; bool isDefunct; bool systemOnly; /* internal stuff */ const struct dsdb_syntax *syntax; const struct ldb_schema_attribute *ldb_schema_attribute; };
dsdb_class
struct dsdb_class { struct dsdb_class *prev, *next; const char *cn; const char *lDAPDisplayName; const char *governsID_oid; uint32_t governsID_id; struct GUID schemaIDGUID; uint32_t objectClassCategory; const char *rDNAttID; const char *defaultObjectCategory; const char *subClassOf; const char **systemAuxiliaryClass; const char **systemPossSuperiors; const char **systemMustContain; const char **systemMayContain; const char **auxiliaryClass; const char **possSuperiors; const char **mustContain; const char **mayContain; const char **possibleInferiors; const char **systemPossibleInferiors; const char *defaultSecurityDescriptor; uint32_t schemaFlagsEx; struct ldb_val msDs_Schema_Extensions; bool showInAdvancedViewOnly; const char *adminDisplayName; const char *adminDescription; const char *classDisplayName; bool defaultHidingValue; bool isDefunct; bool systemOnly; char **supclasses; char **subclasses; char **subclasses_direct; char **posssuperiors; uint32_t subClassOf_id; uint32_t *systemAuxiliaryClass_ids; uint32_t *auxiliaryClass_ids; uint32_t *systemMayContain_ids; uint32_t *systemMustContain_ids; uint32_t *possSuperiors_ids; uint32_t *mustContain_ids; uint32_t *mayContain_ids; uint32_t *systemPossSuperiors_ids; /* An ordered index showing how this subClass fits into the * subClass tree. that is, an objectclass that is not * subClassOf anything is 0 (just in case), and top is 1, and * subClasses of top are 2, subclasses of those classes are * 3 */ uint32_t subClass_order; };
dsdb_schema
struct dsdb_schema { uint32_t num_prefixes; struct dsdb_schema_oid_prefix *prefixes; /* * the last element of the prefix mapping table isn't a oid, * it starts with 0xFF and has 21 bytes and is maybe a schema * version number * * this is the content of the schemaInfo attribute of the * Schema-Partition head object. */ const char *schema_info; 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; } fsmo; struct smb_iconv_convenience *iconv_convenience; };