Samba4/DSDB

From SambaWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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;
};