]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slap.h
Fix lint in previous commit
[openldap] / servers / slapd / slap.h
index 6a24385ed427962e16c18fe6123ac2029cab721d..ba66ff390330a781c6b9bfb38bf24e88c78d1dff 100644 (file)
@@ -234,7 +234,9 @@ typedef struct slap_ssf_set {
 #define SLAP_SCHERR_SYN_NOT_FOUND      13
 #define SLAP_SCHERR_MR_INCOMPLETE      14
 #define SLAP_SCHERR_NOT_SUPPORTED      15
-#define SLAP_SCHERR_BAD_DESCR  16
+#define SLAP_SCHERR_BAD_DESCR          16
+#define SLAP_SCHERR_OIDM                       17
+#define SLAP_SCHERR_LAST                       SLAP_SCHERR_OIDM
 
 typedef union slap_sockaddr {
        struct sockaddr sa_addr;
@@ -407,7 +409,14 @@ typedef struct slap_matching_rule {
 #define smr_extensions         smr_mrule.mr_extensions
 } MatchingRule;
 
-struct slap_attr_desc;
+struct slap_entry;
+struct slap_attr;
+
+typedef int (AttributeTypeSchemaCheckFN)(
+       struct slap_entry *e,
+       struct slap_attr *attr,
+       const char** text,
+       char *textbuf, size_t textlen );
 
 typedef struct slap_attribute_type {
        LDAPAttributeType               sat_atype;
@@ -419,6 +428,7 @@ typedef struct slap_attribute_type {
        MatchingRule                    *sat_ordering;
        MatchingRule                    *sat_substr;
        Syntax                          *sat_syntax;
+       AttributeTypeSchemaCheckFN      *sat_check;
        struct slap_attr_desc           *sat_ad;
        struct slap_attribute_type      *sat_next;
        ldap_pvt_thread_mutex_t         sat_ad_mutex;
@@ -444,11 +454,20 @@ typedef struct slap_attribute_type {
 #define is_at_obsolete(at)             ((at)->sat_obsolete)
 #define is_at_no_user_mod(at)  ((at)->sat_no_user_mod)
 
+struct slap_object_class;
+
+typedef int (ObjectClassSchemaCheckFN)(
+       struct slap_entry *e,
+       struct slap_object_class *oc,
+       const char** text,
+       char *textbuf, size_t textlen );
+
 typedef struct slap_object_class {
        LDAPObjectClass         soc_oclass;
        struct slap_object_class        **soc_sups;
        AttributeType                   **soc_required;
        AttributeType                   **soc_allowed;
+       ObjectClassSchemaCheckFN        *sco_check;
        struct slap_object_class        *soc_next;
 #define soc_oid                        soc_oclass.oc_oid
 #define soc_names              soc_oclass.oc_names
@@ -478,6 +497,7 @@ typedef struct slap_attr_desc {
 typedef struct slap_attr_name {
        struct berval an_name;
        AttributeDescription *an_desc;
+       ObjectClass *an_oc;
 } AttributeName;
 
 #define slap_ad_is_lang(ad)            ( (ad)->ad_lang.bv_len != 0 )
@@ -492,38 +512,52 @@ struct slap_internal_schema {
        ObjectClass *si_oc_extensibleObject;
        ObjectClass *si_oc_alias;
        ObjectClass *si_oc_referral;
+       ObjectClass *si_oc_rootdse;
        ObjectClass *si_oc_subentry;
        ObjectClass *si_oc_subschema;
-       ObjectClass *si_oc_rootdse;
+       ObjectClass *si_oc_collectiveAttributes;
+       ObjectClass *si_oc_dynamicObject;
 
        /* objectClass attribute descriptions */
        AttributeDescription *si_ad_objectClass;
 
        /* operational attribute descriptions */
        AttributeDescription *si_ad_structuralObjectClass;
-       AttributeDescription *si_ad_entryUUID;
-       AttributeDescription *si_ad_entryCSN;
        AttributeDescription *si_ad_creatorsName;
        AttributeDescription *si_ad_createTimestamp;
        AttributeDescription *si_ad_modifiersName;
        AttributeDescription *si_ad_modifyTimestamp;
        AttributeDescription *si_ad_hasSubordinates;
        AttributeDescription *si_ad_subschemaSubentry;
+       AttributeDescription *si_ad_collectiveSubentry;
+       AttributeDescription *si_ad_collectiveExclusions;
+       AttributeDescription *si_ad_entryUUID;
+       AttributeDescription *si_ad_entryCSN;
 
        /* root DSE attribute descriptions */
+       AttributeDescription *si_ad_altServer;
        AttributeDescription *si_ad_namingContexts;
        AttributeDescription *si_ad_supportedControl;
        AttributeDescription *si_ad_supportedExtension;
        AttributeDescription *si_ad_supportedLDAPVersion;
        AttributeDescription *si_ad_supportedSASLMechanisms;
        AttributeDescription *si_ad_supportedFeatures;
+       AttributeDescription *si_ad_vendorName;
+       AttributeDescription *si_ad_vendorVersion;
+
+       /* subentry attribute descriptions */
+       AttributeDescription *si_ad_administrativeRole;
+       AttributeDescription *si_ad_subtreeSpecification;
 
        /* subschema subentry attribute descriptions */
+       AttributeDescription *si_ad_ditStructureRules;
+       AttributeDescription *si_ad_ditContentRules;
+       AttributeDescription *si_ad_nameForms;
        AttributeDescription *si_ad_objectClasses;
        AttributeDescription *si_ad_attributeTypes;
        AttributeDescription *si_ad_ldapSyntaxes;
        AttributeDescription *si_ad_matchingRules;
-       AttributeDescription *si_ad_matchingRulesUse;
+       AttributeDescription *si_ad_matchingRuleUse;
 
        /* Aliases & Referrals */
        AttributeDescription *si_ad_aliasedObjectName;
@@ -536,9 +570,18 @@ struct slap_internal_schema {
        AttributeDescription *si_ad_aci;
 #endif
 
+       /* dynamic entries */
+       AttributeDescription *si_ad_entryTtl;
+       AttributeDescription *si_ad_dynamicSubtrees;
+
        /* Other attributes descriptions */
+       AttributeDescription *si_ad_distinguishedName;
+       AttributeDescription *si_ad_name;
+       AttributeDescription *si_ad_cn;
        AttributeDescription *si_ad_userPassword;
+#ifdef SLAPD_AUTHPASSWD
        AttributeDescription *si_ad_authPassword;
+#endif
 #ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND
        AttributeDescription *si_ad_krbName;
 #endif