Added AD specific attributes to top class to avoid use of samba4Top.
authorNadezhda Ivanova <nivanova@symas.com>
Tue, 26 Aug 2014 14:51:29 +0000 (17:51 +0300)
committerNadezhda Ivanova <nivanova@symas.com>
Tue, 26 Aug 2014 14:51:53 +0000 (17:51 +0300)
Top class in AD has some additional attributes, which we used to compensate for
by adding an additional class to all objects. This change will allow us to stop doing that.
Sope attributes that should be operational or "must", are not at the moment, which will be fixed
whe we stop using Samba modules.

configure
configure.in
contrib/slapd-modules/samba4/Makefile
contrib/slapd-modules/usn/usn.c
servers/slapd/overlays/memberof.c
servers/slapd/schema_init.c
servers/slapd/schema_prep.c
servers/slapd/slap.h

index 7666628bcbd4fb4818726dc5defef71576fcd5c6..b68585e7f0dcac112257bb30e4f102fdf706053c 100755 (executable)
--- a/configure
+++ b/configure
@@ -1018,6 +1018,7 @@ enable_libtool_lock
 with_pic
 with_tags
 with_xxinstall
+enable_ad_compatibility
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1667,6 +1668,7 @@ SLAPD (Standalone LDAP Daemon) Options:
     --enable-slapi        enable SLAPI support (experimental) [no]
     --enable-slp          enable SLPv2 support [no]
     --enable-wrappers    enable tcp wrapper support [no]
+    --enable-ad-compatibility    enable AD ldap compatibility [no]
 
 SLAPD Backend Options:
     --enable-backends    enable all available backends no|yes|mod
@@ -4046,6 +4048,27 @@ else
 fi
 
 # end --enable-wrappers
+# OpenLDAP --enable-ad-compatibility
+
+       # Check whether --enable-ad-compatibility was given.
+if test "${enable_ad_compatibility+set}" = set; then :
+  enableval=$enable_ad_compatibility;
+       ol_arg=invalid
+       for ol_val in yes no ; do
+               if test "$enableval" = "$ol_val" ; then
+                       ol_arg="$ol_val"
+               fi
+       done
+       if test "$ol_arg" = "invalid" ; then
+               as_fn_error "bad value $enableval for --enable-ad-compatibility" "$LINENO" 5
+       fi
+       ol_enable_ad_compatibility="$ol_arg"
+
+else
+       ol_enable_ad_compatibility=no
+fi
+echo "ad:"
+echo $ol_enable_ad_compatibility
 
 Backends="bdb \
        dnssrv \
@@ -24766,7 +24789,11 @@ $as_echo "#define ENABLE_SLAPI 1" >>confdefs.h
        SLAPD_SLAPI_DEPEND=libslapi.a
 fi
 
+if test "$ol_enable_ad_compatibility" != no ; then
+
+$as_echo "#define ENABLE_AD_COMPATIBILITY 1" >>confdefs.h
 
+fi
 
 if test "$ac_cv_mingw32" = yes -o $ol_cv_msvc = yes ; then
        PLAT=NT
index 810b2fa7f4d7cddaa014d0727a62cd13d1b7068f..af26fc6f50097ab5994fd4a1c0afbbb7ba2eff9b 100644 (file)
@@ -3063,6 +3063,10 @@ if test "$ol_enable_slapi" != no ; then
        SLAPD_SLAPI_DEPEND=libslapi.a
 fi
 
+if test "$ol_enable_ad_compatibility" != no ; then
+       AC_DEFINE(ENABLE_AD_COMPATIBILITY,1,[define to enable AD compatibility])
+fi
+
 dnl ----------------------------------------------------------------
 
 dnl
index 7ec90d3e8d7ac1bab967f874ef0c835fc802a6aa..9709e266dffe34b8c335eaae74af3c40061b7dca 100644 (file)
@@ -20,7 +20,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap_r/libldap_r.la \
 
 LIBTOOL = $(LDAP_BUILD)/libtool
 CC = gcc
-OPT = -g -O2 -Wall -L/usr/local/samba/lib -L/usr/local/lib/ldb -Wl,-rpath=/usr/local/samba/lib -lsamba-util -lsamba-security -lsamdb-schema -lldb -ltalloc
+OPT = -g -O2 -Wall -L/usr/local/samba/lib -L/usr/local/lib/ldb -Wl,-rpath=/usr/local/samba/lib -lsamba-util -lsamba-security -lsamdb-schema -lsamdb-common -lldb -ltalloc
 DEFS = -DSLAPD_OVER_RDNVAL=SLAPD_MOD_DYNAMIC \
        -DSLAPD_OVER_PGUID=SLAPD_MOD_DYNAMIC \
        -DSLAPD_OVER_VERNUM=SLAPD_MOD_DYNAMIC \
index d9c2bcd8a8c396e1f01417a91cc09a78dc9ed410..4393042d704121c67437b725918e95edcc3524db 100644 (file)
@@ -308,6 +308,7 @@ usn_init( void )
        usn.on_bi.bi_op_delete = usn_func;
        usn.on_bi.bi_operational = usn_operational;
 
+#ifndef LDAP_AD_COMPATIBILITY
        for ( i = 0; as[i].desc; i++ ) {
                code = register_at( as[i].desc, as[i].adp, 0 );
                if ( code ) {
@@ -316,6 +317,7 @@ usn_init( void )
                        return code;
                }
        }
+#endif /* attributes are moved to schema_prep.c in this case */
        return overlay_register( &usn );
 }
 
index 187e4104174cba320530953a87d739f9d7e82d7e..e2f742204db376439ca0e3eff340007090123c6f 100644 (file)
@@ -2088,6 +2088,7 @@ memberof_db_destroy(
 }
 
 /* unused */
+#ifndef LDAP_AD_COMPATIBILITY
 static AttributeDescription    *ad_memberOf;
 
 static struct {
@@ -2105,7 +2106,7 @@ static struct {
                &ad_memberOf },
        { NULL }
 };
-
+#endif
 #if SLAPD_OVER_MEMBEROF == SLAPD_MOD_DYNAMIC
 static
 #endif /* SLAPD_OVER_MEMBEROF == SLAPD_MOD_DYNAMIC */
@@ -2113,7 +2114,7 @@ int
 memberof_initialize( void )
 {
        int                     code, i;
-
+#ifndef LDAP_AD_COMPATIBILITY
        for ( i = 0; as[ i ].desc != NULL; i++ ) {
                code = register_at( as[ i ].desc, as[ i ].adp, 0 );
                if ( code ) {
@@ -2123,7 +2124,7 @@ memberof_initialize( void )
                        return code;
                }
        }
-
+#endif
        memberof.on_bi.bi_type = "memberof";
 
        memberof.on_bi.bi_db_init = memberof_db_init;
index a80f99e3bca9ca08981fabfabd57a77f18e9a0e8..00d2dd612581dcb2fb409094ba9560026635d4c2 100644 (file)
@@ -6355,7 +6355,11 @@ static slap_syntax_defs_rec syntax_defs[] = {
        /* FIXME: OID is unused, but not registered yet */
        {"( 1.3.6.1.4.1.4203.666.2.7 DESC 'OpenLDAP authz' )",
                SLAP_SYNTAX_HIDE, NULL, authzValidate, authzPretty},
-
+#ifdef LDAP_AD_COMPATIBILITY
+       /* Syntaxes for AD compatibility */
+       {"( 1.2.840.113556.1.4.906 DESC 'LongInteger' )",
+               0, NULL, integerValidate, NULL},
+#endif
        {NULL, 0, NULL, NULL, NULL}
 };
 
@@ -6408,6 +6412,13 @@ char *objectIdentifierFirstComponentMatchSyntaxes[] = {
        NULL
 };
 
+#ifdef LDAP_AD_COMPATIBILITY
+char *integerMatchSyntaxes[] = {
+       "1.3.6.1.4.1.1466.115.121.1.27" /* INTEGER */,
+       "1.2.840.113556.1.4.906" /* LongInteger */,
+       NULL
+};
+#endif
 /*
  * Other matching rules in X.520 that we do not use (yet):
  *
@@ -6604,14 +6615,21 @@ static slap_mrule_defs_rec mrule_defs[] = {
                NULL, NULL, booleanMatch,
                octetStringIndexer, octetStringFilter,
                NULL },
-
+#ifdef LDAP_AD_COMPATIBILITY
+       {"( 2.5.13.14 NAME 'integerMatch' "
+               "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )",
+               SLAP_MR_EQUALITY | SLAP_MR_EXT | SLAP_MR_ORDERED_INDEX, integerMatchSyntaxes,
+               NULL, NULL, integerMatch,
+               integerIndexer, integerFilter,
+               NULL },
+#else
        {"( 2.5.13.14 NAME 'integerMatch' "
                "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )",
                SLAP_MR_EQUALITY | SLAP_MR_EXT | SLAP_MR_ORDERED_INDEX, NULL,
                NULL, NULL, integerMatch,
                integerIndexer, integerFilter,
                NULL },
-
+#endif
        {"( 2.5.13.15 NAME 'integerOrderingMatch' "
                "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )",
                SLAP_MR_ORDERING | SLAP_MR_EXT | SLAP_MR_ORDERED_INDEX, NULL,
index 06baa46b022790c7b181bfbb537dfd48e56a7ef2..4f5d7d1fea03aefc2764be4bd5a9decc13dfdb5d 100644 (file)
@@ -327,10 +327,41 @@ static struct slap_schema_oc_map {
        slap_mask_t ssom_flags;
        size_t ssom_offset;
 } oc_map[] = {
+#ifndef LDAP_AD_COMPATIBILITY
        { "top", "( 2.5.6.0 NAME 'top' "
                        "DESC 'top of the superclass chain' "
                        "ABSTRACT MUST objectClass )",
                0, 0, offsetof(struct slap_internal_schema, si_oc_top) },
+#else
+       { "top", "( 2.5.6.0 NAME 'top' "
+                       "DESC 'top of the superclass chain' "
+                       "ABSTRACT MUST ( objectClass ) "
+                        "MAY ( instanceType $ nTSecurityDescriptor $ objectCategory $ adminDescription $ "
+         "adminDisplayName $ allowedAttributes $ allowedAttributesEffective $ allowedChildClasses $ "
+         "allowedChildClassesEffective $ bridgeheadServerListBL $ canonicalName $ cn $ description $ "
+         "directReports $ displayName $ displayNamePrintable $ dSASignature $ dSCorePropagationData $ "
+         "extensionName $ flags $ fromEntry $ frsComputerReferenceBL $ fRSMemberReferenceBL $ "
+         "fSMORoleOwner $ isCriticalSystemObject $ isDeleted $ isPrivilegeHolder $ lastKnownParent $ "
+         "managedObjects $ masteredBy $ mS-DS-ConsistencyChildCount $ mS-DS-ConsistencyGuid $ "
+         "msCOM-PartitionSetLink $ msCOM-UserLink $ msDS-Approx-Immed-Subordinates $ msDs-masteredBy $ "
+         "msDS-MembersForAzRoleBL $ msDS-NCReplCursors $ msDS-NCReplInboundNeighbors $ msDS-NCReplOutboundNeighbors $ "
+         "msDS-NcType $ msDS-NonMembersBL $ msDS-ObjectReferenceBL $ msDS-OperationsForAzRoleBL $ "
+         "msDS-OperationsForAzTaskBL $ msDS-ReplAttributeMetaData $ msDS-ReplValueMetaData $ msDS-TasksForAzRoleBL $ "
+         "msDS-TasksForAzTaskBL $ name $ netbootSCPBL $ nonSecurityMemberBL $ objectVersion $ otherWellKnownObjects $ "
+         "ownerBL $ parentGUID $ partialAttributeDeletionList $ partialAttributeSet $ possibleInferiors $ "
+         "proxiedObjectName $ proxyAddresses $ queryPolicyBL $ replPropertyMetaData $ replUpToDateVector $ "
+         "repsFrom $ repsTo $ revision $ sDRightsEffective $ serverReferenceBL $ showInAdvancedViewOnly $ "
+         "siteObjectBL $ subRefs $ systemFlags $ url $ uSNDSALastObjRemoved $ USNIntersite $ uSNLastObjRem $ "
+         "uSNSource $ wbemPath $ wellKnownObjects $ wWWHomePage $ msSFU30PosixMemberOf $ "
+         "msDFSR-ComputerReferenceBL $ msDFSR-MemberReferenceBL $ msDS-EnabledFeatureBL $ "
+         "msDS-LastKnownRDN $ msDS-HostServiceAccountBL $ msDS-OIDToGroupLinkBl $ msDS-LocalEffectiveRecycleTime $ "
+         "msDS-LocalEffectiveDeletionTime $ isRecycled $ msDS-PSOApplied $ msDS-PrincipalName $ "
+         "msDS-RevealedListBL $ msDS-AuthenticatedToAccountlist $ msDS-IsPartialReplicaFor $ msDS-IsDomainFor $ "
+         "msDS-IsFullReplicaFor $ msDS-RevealedDSAs $ msDS-KrbTgtLinkBl $ whenCreated $ whenChanged $ "
+         "uSNCreated $ uSNChanged $ subschemaSubEntry $ structuralObjectClass $ objectGUID $ distinguishedName $ "
+         "modifyTimeStamp $ memberOf $ createTimeStamp $ msDS-NC-RO-Replica-Locations-BL ) )",
+               0, 0, offsetof(struct slap_internal_schema, si_oc_top) },
+#endif /*LDAP_AD_COMPATIBILITY*/
        { "extensibleObject", "( 1.3.6.1.4.1.1466.101.120.111 "
                        "NAME 'extensibleObject' "
                        "DESC 'RFC4512: extensible object' "
@@ -448,7 +479,11 @@ static struct slap_schema_ad_map {
                        "DESC 'RFC4512: structural object class of entry' "
                        "EQUALITY objectIdentifierMatch "
                        "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 "
+#ifndef LDAP_AD_COMPATIBILITY
                        "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
+#else
+         "SINGLE-VALUE )",
+#endif /* todo this will be restored to no-user-modificartion eventually */
                NULL, 0,
                oidValidate, objectClassPretty,
                NULL, NULL, objectSubClassMatch,
@@ -459,7 +494,11 @@ static struct slap_schema_ad_map {
                        "EQUALITY generalizedTimeMatch "
                        "ORDERING generalizedTimeOrderingMatch "
                        "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 "
+#ifndef LDAP_AD_COMPATIBILITY
                        "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
+#else
+         "SINGLE-VALUE )",
+#endif /* todo this will be restored to no-user-modificartion eventually */
                NULL, SLAP_AT_MANAGEABLE,
                NULL, NULL,
                NULL, NULL, NULL, NULL, NULL,
@@ -469,7 +508,11 @@ static struct slap_schema_ad_map {
                        "EQUALITY generalizedTimeMatch "
                        "ORDERING generalizedTimeOrderingMatch "
                        "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 "
+#ifndef LDAP_AD_COMPATIBILITY
                        "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
+#else
+         "SINGLE-VALUE )",
+#endif /* todo this will be restored to no-user-modificartion eventually */
                NULL, SLAP_AT_MANAGEABLE,
                NULL, NULL,
                NULL, NULL, NULL, NULL, NULL,
@@ -504,8 +547,12 @@ static struct slap_schema_ad_map {
        { "subschemaSubentry", "( 2.5.18.10 NAME 'subschemaSubentry' "
                        "DESC 'RFC4512: name of controlling subschema entry' "
                        "EQUALITY distinguishedNameMatch "
+#ifndef LDAP_AD_COMPATIBILITY
                        "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE "
                        "NO-USER-MODIFICATION USAGE directoryOperation )",
+#else
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )",
+#endif /* todo probably remove this in the future */
                NULL, SLAP_AT_DYNAMIC,
                NULL, NULL,
                NULL, NULL, NULL, NULL, NULL,
@@ -821,7 +868,11 @@ static struct slap_schema_ad_map {
                NULL, NULL,
                NULL, NULL, NULL, NULL, NULL,
                offsetof(struct slap_internal_schema, si_ad_aliasedObjectName) },
+#ifndef LDAP_AD_COMPATIBILITY
        { "ref", "( 2.16.840.1.113730.3.1.34 NAME 'ref' "
+#else
+         { "ref", "( 2.16.840.1.113730.3.1.250 NAME 'ref' "
+#endif /* conflicting oids. Unfortunalely we lose the RFC3296 compatibility this way */
                        "DESC 'RFC3296: subordinate referral URL' "
                        "EQUALITY caseExactMatch "
                        "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 "
@@ -878,8 +929,12 @@ static struct slap_schema_ad_map {
 #ifdef LDAP_DYNAMIC_OBJECTS
        { "entryTtl", "( 1.3.6.1.4.1.1466.101.119.3 NAME 'entryTtl' "
                        "DESC 'RFC2589: entry time-to-live' "
+#ifndef LDAP_AD_COMPATIBILITY
                        "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE "
                        "NO-USER-MODIFICATION USAGE dSAOperation )",
+#else
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+#endif /* restore this later */
                dynamicAttribute, SLAP_AT_MANAGEABLE,
                NULL, NULL,
                NULL, NULL, NULL, NULL, NULL,
@@ -904,6 +959,7 @@ static struct slap_schema_ad_map {
                NULL, NULL,
                NULL, NULL, NULL, NULL, NULL,
                offsetof(struct slap_internal_schema, si_ad_distinguishedName) },
+#ifndef LDAP_AD_COMPATIBILITY
        { "name", "( 2.5.4.41 NAME 'name' "
                        "DESC 'RFC4519: common supertype of name attributes' "
                        "EQUALITY caseIgnoreMatch "
@@ -913,6 +969,17 @@ static struct slap_schema_ad_map {
                NULL, NULL,
                NULL, NULL, NULL, NULL, NULL,
                offsetof(struct slap_internal_schema, si_ad_name) },
+#else
+         /* this is RDN in AD/Samba */
+       { "name", "( 1.2.840.113556.1.4.1 NAME 'name' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_name) },
+#endif
        { "cn", "( 2.5.4.3 NAME ( 'cn' 'commonName' ) "
                        "DESC 'RFC4519: common name(s) for which the entity is known by' "
                        "SUP name )",
@@ -1009,6 +1076,856 @@ static struct slap_schema_ad_map {
                NULL, NULL, NULL, NULL, NULL,
                offsetof(struct slap_internal_schema, si_ad_seeAlso) },
 
+#ifdef LDAP_AD_COMPATIBILITY
+               /* samba attributes for top */
+       { "instanceType", "( 1.2.840.113556.1.2.1 NAME 'instanceType' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_instanceType) },
+
+       { "nTSecurityDescriptor", "( 1.2.840.113556.1.2.281 NAME 'nTSecurityDescriptor' "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_nTSecurityDescriptor) },
+       
+       { "objectCategory", "( 1.2.840.113556.1.4.782 NAME 'objectCategory' "
+         "EQUALITY distinguishedNameMatch "
+        "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_objectCategory) },
+
+       { "adminDescription", "( 1.2.840.113556.1.2.226 NAME 'adminDescription' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_adminDescription) },
+
+       { "adminDisplayName", "( 1.2.840.113556.1.2.194 NAME 'adminDisplayName' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_adminDisplayName) },
+
+       { "allowedAttributes", "( 1.2.840.113556.1.4.913 NAME 'allowedAttributes' "
+         "EQUALITY caseIgnoreMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_allowedAttributes) },
+
+       { "allowedAttributesEffective", "( 1.2.840.113556.1.4.914 NAME 'allowedAttributesEffective' "
+         "EQUALITY caseIgnoreMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_allowedAttributesEffective) },
+
+       { "allowedChildClasses", "( 1.2.840.113556.1.4.911 NAME 'allowedChildClasses' "
+         "EQUALITY caseIgnoreMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_allowedChildClasses) },
+
+       { "allowedChildClassesEffective", "( 1.2.840.113556.1.4.912 NAME 'allowedChildClassesEffective' "
+         "EQUALITY caseIgnoreMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_allowedChildClassesEffective) },
+
+       { "bridgeheadServerListBL", "( 1.2.840.113556.1.4.820 NAME 'bridgeheadServerListBL' "
+         "EQUALITY distinguishedNameMatch " 
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_bridgeheadServerListBL) },
+
+       { "canonicalName", "( 1.2.840.113556.1.4.916 NAME 'canonicalName' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_canonicalName) },
+
+       { "directReports", "( 1.2.840.113556.1.2.436 NAME 'directReports' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_directReports) },
+
+       { "displayName", "( 1.2.840.113556.1.2.13 NAME 'displayName' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_displayName) },
+
+       { "displayNamePrintable", "( 1.2.840.113556.1.2.353 NAME 'displayNamePrintable' "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_displayNamePrintable) },
+       
+       { "dSASignature", "(1.2.840.113556.1.2.74 NAME 'dSASignature' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_dSASignature) },
+
+       { "dSCorePropagationData", "(1.2.840.113556.1.4.1357 NAME 'dSCorePropagationData' "
+         "EQUALITY generalizedTimeMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_dSCorePropagationData) },
+
+       { "extensionName", "( 1.2.840.113556.1.2.227 NAME 'extensionName' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_extensionName) },
+       
+       { "flags", "( 1.2.840.113556.1.4.38 NAME 'flags' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_flags) },
+
+       { "fromEntry", "( 1.2.840.113556.1.4.910 NAME 'fromEntry' "
+         "EQUALITY booleanMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_fromEntry) },
+
+       { "frsComputerReferenceBL", "( 1.2.840.113556.1.4.870 NAME 'frsComputerReferenceBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_frsComputerReferenceBL) },
+
+       { "fRSMemberReferenceBL", "( 1.2.840.113556.1.4.876 NAME 'fRSMemberReferenceBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_fRSMemberReferenceBL) },
+
+       { "fSMORoleOwner", "( 1.2.840.113556.1.4.369 NAME 'fSMORoleOwner' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_fSMORoleOwner) },
+
+       { "isCriticalSystemObject", "( 1.2.840.113556.1.4.868 NAME 'isCriticalSystemObject' "
+         "EQUALITY booleanMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_isCriticalSystemObject) },
+
+       { "isDeleted", "( 1.2.840.113556.1.2.48 NAME 'isDeleted' "
+         "EQUALITY booleanMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_isDeleted) },
+
+       { "isPrivilegeHolder", "( 1.2.840.113556.1.4.638 NAME 'isPrivilegeHolder' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_isPrivilegeHolder) },
+
+       { "lastKnownParent", "( 1.2.840.113556.1.4.781 NAME 'lastKnownParent' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_lastKnownParent) },
+
+       { "managedObjects", "( 1.2.840.113556.1.4.654 NAME 'managedObjects' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_managedObjects) },
+
+       { "masteredBy", "( 1.2.840.113556.1.4.1409 NAME 'masteredBy' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_masteredBy) },
+       
+       { "mS-DS-ConsistencyChildCount", "( 1.2.840.113556.1.4.1361 NAME 'mS-DS-ConsistencyChildCount' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_mS_DS_ConsistencyChildCount) },
+
+       { "mS-DS-ConsistencyGuid", "( 1.2.840.113556.1.4.1360 NAME 'mS-DS-ConsistencyGuid' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_mS_DS_ConsistencyGuid) },
+
+       { "msCOM-PartitionSetLink", "( 1.2.840.113556.1.4.1424 NAME 'msCOM-PartitionSetLink' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_msCOM_PartitionSetLink) },
+
+       { "msCOM-UserLink", "( 1.2.840.113556.1.4.1425 NAME 'msCOM-UserLink' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_msCOM_UserLink) },
+
+       { "msDS-Approx-Immed-Subordinates", "( 1.2.840.113556.1.4.1669 NAME 'msDS-Approx-Immed-Subordinates' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_msDS_Approx_Immed_Subordinates) },
+
+       { "msDs-masteredBy", "( 1.2.840.113556.1.4.1837 NAME 'msDs-masteredBy' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_msDs_masteredBy) },
+
+       { "msDS-MembersForAzRoleBL", "( 1.2.840.113556.1.4.1807 NAME 'msDS-MembersForAzRoleBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_msDS_MembersForAzRoleBL) },
+
+       { "msDS-NCReplCursors", "( 1.2.840.113556.1.4.1704 NAME 'msDS-NCReplCursors' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_msDS_NCReplCursors) },
+
+       { "msDS-NCReplInboundNeighbors", "( 1.2.840.113556.1.4.1705 NAME 'msDS-NCReplInboundNeighbors' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+               NULL, 0,
+               NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_msDS_NCReplInboundNeighbors) },
+
+       { "msDS-NCReplOutboundNeighbors", "( 1.2.840.113556.1.4.1706 NAME 'msDS-NCReplOutboundNeighbors' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_NCReplOutboundNeighbors) },
+
+       { "msDS-NcType", "( 1.2.840.113556.1.4.2024 NAME 'msDS-NcType' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_NcType) },
+   
+       { "msDS-NonMembersBL", "( 1.2.840.113556.1.4.1794 NAME 'msDS-NonMembersBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_NonMembersBL) },
+
+       { "msDS-ObjectReferenceBL", "( 1.2.840.113556.1.4.1841 NAME 'msDS-ObjectReferenceBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_ObjectReferenceBL) },
+
+       { "msDS-OperationsForAzRoleBL", "( 1.2.840.113556.1.4.1813 NAME 'msDS-OperationsForAzRoleBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_OperationsForAzRoleBL) },
+
+       { "msDS-OperationsForAzTaskBL", "( 1.2.840.113556.1.4.1809 NAME 'msDS-OperationsForAzTaskBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_OperationsForAzTaskBL) },
+
+       { "msDS-ReplAttributeMetaData", "( 1.2.840.113556.1.4.1707 NAME 'msDS-ReplAttributeMetaData' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_ReplAttributeMetaData) },
+
+       { "msDS-ReplValueMetaData", "( 1.2.840.113556.1.4.1708 NAME 'msDS-ReplValueMetaData' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema,si_ad_msDS_ReplValueMetaData ) },
+
+
+       { "msDS-TasksForAzRoleBL", "( 1.2.840.113556.1.4.1815 NAME 'msDS-TasksForAzRoleBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_TasksForAzRoleBL) },
+
+       { "msDS-TasksForAzTaskBL", "( 1.2.840.113556.1.4.1811 NAME 'msDS-TasksForAzTaskBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_TasksForAzTaskBL) },
+
+       { "netbootSCPBL", "( 1.2.840.113556.1.4.864 NAME 'netbootSCPBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_netbootSCPBL) },
+
+       { "nonSecurityMemberBL", "( 1.2.840.113556.1.4.531 NAME 'nonSecurityMemberBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_nonSecurityMemberBL) },
+
+       { "objectVersion", "( 1.2.840.113556.1.2.76 NAME 'objectVersion' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_objectVersion) },
+
+       { "otherWellKnownObjects", "( 1.2.840.113556.1.4.1359 NAME 'otherWellKnownObjects' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_otherWellKnownObjects) },
+
+       { "ownerBL", "( 1.2.840.113556.1.2.104 NAME 'ownerBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_ownerBL) },
+
+       { "parentGUID", "( 1.2.840.113556.1.4.1224 NAME 'parentGUID' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_parentGUID) },
+
+       { "partialAttributeDeletionList", "( 1.2.840.113556.1.4.663 NAME 'partialAttributeDeletionList' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_partialAttributeDeletionList) },
+
+       { "partialAttributeSet", "( 1.2.840.113556.1.4.640 NAME 'partialAttributeSet' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_partialAttributeSet) },
+
+       { "possibleInferiors", "( 1.2.840.113556.1.4.915 NAME 'possibleInferiors' "
+         "EQUALITY caseIgnoreMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_possibleInferiors) },
+
+       { "proxiedObjectName", "( 1.2.840.113556.1.4.1249 NAME 'proxiedObjectName' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_proxiedObjectName) },
+
+       { "proxyAddresses", "( 1.2.840.113556.1.2.210 NAME 'proxyAddresses' "
+        "EQUALITY caseIgnoreMatch "
+        "SUBSTR caseIgnoreSubstringsMatch "
+        "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_proxyAddresses) },
+
+       { "queryPolicyBL", "( 1.2.840.113556.1.4.608 NAME 'queryPolicyBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_queryPolicyBL) },
+
+       { "replPropertyMetaData", "( 1.2.840.113556.1.4.3 NAME 'replPropertyMetaData' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_replPropertyMetaData) },
+
+       { "replUpToDateVector", "( 1.2.840.113556.1.4.4 NAME 'replUpToDateVector' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_replUpToDateVector) },
+
+       { "repsFrom", "( 1.2.840.113556.1.2.91 NAME 'repsFrom' "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_repsFrom) },
+
+       { "repsTo", "( 1.2.840.113556.1.2.83 NAME 'repsTo' "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_repsTo) },
+
+       { "revision", "( 1.2.840.113556.1.4.145 NAME 'revision' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_revision) },
+
+       { "sDRightsEffective", "( 1.2.840.113556.1.4.1304 NAME 'sDRightsEffective' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_sDRightsEffective) },
+
+
+       { "serverReferenceBL", "( 1.2.840.113556.1.4.516 NAME 'serverReferenceBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_serverReferenceBL) },
+
+       { "showInAdvancedViewOnly", "( 1.2.840.113556.1.2.169 NAME 'showInAdvancedViewOnly' "
+         "EQUALITY booleanMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_showInAdvancedViewOnly) },
+
+       { "siteObjectBL", "( 1.2.840.113556.1.4.513 NAME 'siteObjectBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_siteObjectBL) },
+
+       { "subRefs", "( 1.2.840.113556.1.2.7 NAME 'subRefs' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_subRefs) },
+
+       { "systemFlags", "( 1.2.840.113556.1.4.375 NAME 'systemFlags' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_systemFlags) },
+
+
+       { "url", "( 1.2.840.113556.1.4.749 NAME 'url' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_url) },
+
+       { "uSNDSALastObjRemoved", "( 1.2.840.113556.1.2.267 NAME 'uSNDSALastObjRemoved' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_uSNDSALastObjRemoved) },
+
+       { "USNIntersite", "( 1.2.840.113556.1.2.469 NAME 'USNIntersite' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_USNIntersite) },
+
+       { "uSNLastObjRem", "( 1.2.840.113556.1.2.121 NAME 'uSNLastObjRem' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_uSNLastObjRem) },
+
+       { "uSNSource", "( 1.2.840.113556.1.4.896 NAME 'uSNSource' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_uSNSource) },
+
+       { "wbemPath", "( 1.2.840.113556.1.4.301 NAME 'wbemPath' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_wbemPath) },
+
+       { "wellKnownObjects", "( 1.2.840.113556.1.4.618 NAME 'wellKnownObjects' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_wellKnownObjects) },
+
+       { "wWWHomePage", "( 1.2.840.113556.1.2.464 NAME 'wWWHomePage' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_wWWHomePage) },
+
+       { "msSFU30PosixMemberOf", "( 1.2.840.113556.1.6.18.1.347 NAME 'msSFU30PosixMemberOf' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msSFU30PosixMemberOf) },
+
+       { "msDFSR-ComputerReferenceBL", "( 1.2.840.113556.1.6.13.3.103 NAME 'msDFSR-ComputerReferenceBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDFSR_ComputerReferenceBL) },
+
+         { "msDFSR-MemberReferenceBL", "( 1.2.840.113556.1.6.13.3.102 NAME 'msDFSR-MemberReferenceBL' "
+           "EQUALITY distinguishedNameMatch "
+           "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDFSR_MemberReferenceBL) },
+
+       { "msDS-EnabledFeatureBL", "( 1.2.840.113556.1.4.2069 NAME 'msDS-EnabledFeatureBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_EnabledFeatureBL) },
+
+       { "msDS-LastKnownRDN", "( 1.2.840.113556.1.4.2067 NAME 'msDS-LastKnownRDN' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_LastKnownRDN) },
+
+       { "msDS-HostServiceAccountBL", "( 1.2.840.113556.1.4.2057 NAME 'msDS-HostServiceAccountBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_HostServiceAccountBL) },
+
+       { "msDS-OIDToGroupLinkBl", "( 1.2.840.113556.1.4.2052 NAME 'msDS-OIDToGroupLinkBl' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_OIDToGroupLinkBl) },
+
+       { "msDS-LocalEffectiveRecycleTime", "( 1.2.840.113556.1.4.2060 NAME 'msDS-LocalEffectiveRecycleTime' "
+         "EQUALITY generalizedTimeMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_LocalEffectiveRecycleTime) },
+
+       { "msDS-LocalEffectiveDeletionTime", "( 1.2.840.113556.1.4.2059 NAME 'msDS-LocalEffectiveDeletionTime' "
+         "EQUALITY generalizedTimeMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_LocalEffectiveDeletionTime) },
+
+       { "isRecycled", "( 1.2.840.113556.1.4.2058 NAME 'isRecycled' "
+         "EQUALITY booleanMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_isRecycled) },
+
+       { "msDS-PSOApplied", "( 1.2.840.113556.1.4.2021 NAME 'msDS-PSOApplied' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_PSOApplied) },
+
+       { "msDS-PrincipalName", "( 1.2.840.113556.1.4.1865 NAME 'msDS-PrincipalName' "
+         "EQUALITY caseIgnoreMatch "
+         "SUBSTR caseIgnoreSubstringsMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_PrincipalName) },
+
+       { "msDS-RevealedListBL", "( 1.2.840.113556.1.4.1975 NAME 'msDS-RevealedListBL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_RevealedListBL) },
+
+       { "msDS-AuthenticatedToAccountlist", "( 1.2.840.113556.1.4.1957 NAME 'msDS-AuthenticatedToAccountlist' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_AuthenticatedToAccountlist) },
+
+       { "msDS-IsPartialReplicaFor", "( 1.2.840.113556.1.4.1934 NAME 'msDS-IsPartialReplicaFor' "
+          "EQUALITY distinguishedNameMatch "
+          "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_IsPartialReplicaFor) },
+
+       { "msDS-IsDomainFor", "( 1.2.840.113556.1.4.1933 NAME 'msDS-IsDomainFor' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_IsDomainFor) },
+
+       { "msDS-IsFullReplicaFor", "(1.2.840.113556.1.4.1932 NAME 'msDS-IsFullReplicaFor' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_IsFullReplicaFor) },
+
+       { "msDS-RevealedDSAs", "( 1.2.840.113556.1.4.1930 NAME 'msDS-RevealedDSAs' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_RevealedDSAs) },
+
+       { "msDS-KrbTgtLinkBl", "(1.2.840.113556.1.4.1931 NAME 'msDS-KrbTgtLinkBl' "
+        "EQUALITY distinguishedNameMatch "
+        "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_KrbTgtLinkBl) },
+
+       { "whenCreated", "( 1.2.840.113556.1.2.2 NAME 'whenCreated' "
+         "EQUALITY generalizedTimeMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_whenCreated) },
+
+       { "whenChanged", "(  1.2.840.113556.1.2.3 NAME 'whenChanged' "
+         "EQUALITY generalizedTimeMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_whenChanged) },
+
+       { "uSNCreated", "( 1.2.840.113556.1.2.19 NAME 'uSNCreated' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.2.840.113556.1.4.906  SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_uSNCreated) },
+
+       { "uSNChanged", "( 1.2.840.113556.1.2.120 NAME 'uSNChanged' "
+         "EQUALITY integerMatch "
+         "SYNTAX 1.2.840.113556.1.4.906  SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_uSNChanged) },
+
+       { "objectGUID", "( 1.2.840.113556.1.4.2 NAME 'objectGUID' "
+         "EQUALITY octetStringMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_objectGUID) },
+
+       { "msDS-NC-RO-Replica-Locations-BL", "( 1.2.840.113556.1.4.1968 NAME 'msDS-NC-RO-Replica-Locations-BL' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_msDS_NC_RO_Replica_Locations_BL) },
+
+       { "memberOf", "( 1.2.840.113556.1.2.102 NAME 'memberOf' "
+         "EQUALITY distinguishedNameMatch "
+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)",
+         NULL, 0,
+         NULL, NULL,
+         NULL, NULL, NULL, NULL, NULL,
+         offsetof(struct slap_internal_schema, si_ad_memberOf) },
+#endif
+
        { NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0 }
 };
 
index 1e0d0fd60170f4a6fc605b17db2049ff5abab811..97ae9a1199af79a779a23225617b2c32b09c3cc8 100644 (file)
@@ -77,6 +77,10 @@ LDAP_BEGIN_DECL
 #define SLAP_AUTH_REWRITE      1 /* use librewrite for sasl-regexp */
 #endif
 
+/*Todo Fix this! */
+#define LDAP_AD_COMPATIBILITY 1
+
+
 /*
  * SLAPD Memory allocation macros
  *
@@ -974,6 +978,114 @@ struct slap_internal_schema {
        AttributeDescription *si_ad_description;
        AttributeDescription *si_ad_seeAlso;
 
+#ifdef LDAP_AD_COMPATIBILITY
+       /* samba/ad attributes */
+       AttributeDescription *si_ad_instanceType;
+       AttributeDescription *si_ad_nTSecurityDescriptor;
+       AttributeDescription *si_ad_objectCategory;
+       AttributeDescription *si_ad_adminDescription;
+       AttributeDescription *si_ad_adminDisplayName;
+       AttributeDescription *si_ad_allowedAttributes;
+       AttributeDescription *si_ad_allowedAttributesEffective;
+       AttributeDescription *si_ad_allowedChildClasses;
+       AttributeDescription *si_ad_allowedChildClassesEffective;
+       AttributeDescription *si_ad_bridgeheadServerListBL;
+       AttributeDescription *si_ad_canonicalName;
+       AttributeDescription *si_ad_directReports;
+       AttributeDescription *si_ad_displayName;
+       AttributeDescription *si_ad_displayNamePrintable;
+       AttributeDescription *si_ad_dSASignature;
+       AttributeDescription *si_ad_dSCorePropagationData;
+       AttributeDescription *si_ad_extensionName;
+       AttributeDescription *si_ad_flags;
+       AttributeDescription *si_ad_fromEntry;
+       AttributeDescription *si_ad_frsComputerReferenceBL;
+       AttributeDescription *si_ad_fRSMemberReferenceBL;
+       AttributeDescription *si_ad_fSMORoleOwner;
+       AttributeDescription *si_ad_isCriticalSystemObject;
+       AttributeDescription *si_ad_isDeleted;
+       AttributeDescription *si_ad_isPrivilegeHolder;
+       AttributeDescription *si_ad_lastKnownParent;
+       AttributeDescription *si_ad_managedObjects;
+       AttributeDescription *si_ad_masteredBy;
+       AttributeDescription *si_ad_mS_DS_ConsistencyChildCount;
+       AttributeDescription *si_ad_mS_DS_ConsistencyGuid;
+       AttributeDescription *si_ad_msCOM_PartitionSetLink;
+       AttributeDescription *si_ad_msCOM_UserLink;
+       AttributeDescription *si_ad_msDS_Approx_Immed_Subordinates;
+       AttributeDescription *si_ad_msDs_masteredBy;
+       AttributeDescription *si_ad_msDS_MembersForAzRoleBL;
+       AttributeDescription *si_ad_msDS_NCReplCursors;
+       AttributeDescription *si_ad_msDS_NCReplInboundNeighbors;
+       AttributeDescription *si_ad_msDS_NCReplOutboundNeighbors;
+       AttributeDescription *si_ad_msDS_NcType;
+       AttributeDescription *si_ad_msDS_NonMembersBL;
+       AttributeDescription *si_ad_msDS_ObjectReferenceBL;
+       AttributeDescription *si_ad_msDS_OperationsForAzRoleBL;
+       AttributeDescription *si_ad_msDS_OperationsForAzTaskBL;
+       AttributeDescription *si_ad_msDS_ReplAttributeMetaData;
+       AttributeDescription *si_ad_msDS_ReplValueMetaData;
+       AttributeDescription *si_ad_msDS_TasksForAzRoleBL;
+       AttributeDescription *si_ad_msDS_TasksForAzTaskBL;
+       AttributeDescription *si_ad_netbootSCPBL;
+       AttributeDescription *si_ad_nonSecurityMemberBL;
+       AttributeDescription *si_ad_objectVersion;
+       AttributeDescription *si_ad_otherWellKnownObjects;
+       AttributeDescription *si_ad_ownerBL;
+       AttributeDescription *si_ad_parentGUID;
+       AttributeDescription *si_ad_partialAttributeDeletionList;
+       AttributeDescription *si_ad_partialAttributeSet;
+       AttributeDescription *si_ad_possibleInferiors;
+       AttributeDescription *si_ad_proxiedObjectName;
+       AttributeDescription *si_ad_proxyAddresses;
+       AttributeDescription *si_ad_queryPolicyBL;
+       AttributeDescription *si_ad_replPropertyMetaData;
+       AttributeDescription *si_ad_replUpToDateVector;
+       AttributeDescription *si_ad_repsFrom;
+       AttributeDescription *si_ad_repsTo;
+       AttributeDescription *si_ad_revision;
+       AttributeDescription *si_ad_sDRightsEffective;
+       AttributeDescription *si_ad_serverReferenceBL;
+       AttributeDescription *si_ad_showInAdvancedViewOnly;
+       AttributeDescription *si_ad_siteObjectBL;
+       AttributeDescription *si_ad_subRefs;
+       AttributeDescription *si_ad_systemFlags;
+       AttributeDescription *si_ad_url;
+       AttributeDescription *si_ad_uSNDSALastObjRemoved;
+       AttributeDescription *si_ad_USNIntersite;
+       AttributeDescription *si_ad_uSNLastObjRem;
+       AttributeDescription *si_ad_uSNSource;
+       AttributeDescription *si_ad_wbemPath;
+       AttributeDescription *si_ad_wellKnownObjects;
+       AttributeDescription *si_ad_wWWHomePage;
+       AttributeDescription *si_ad_msSFU30PosixMemberOf;
+       AttributeDescription *si_ad_msDFSR_ComputerReferenceBL;
+       AttributeDescription *si_ad_msDFSR_MemberReferenceBL;
+       AttributeDescription *si_ad_msDS_EnabledFeatureBL;
+       AttributeDescription *si_ad_msDS_LastKnownRDN;
+       AttributeDescription *si_ad_msDS_HostServiceAccountBL;
+       AttributeDescription *si_ad_msDS_OIDToGroupLinkBl;
+       AttributeDescription *si_ad_msDS_LocalEffectiveRecycleTime;
+       AttributeDescription *si_ad_msDS_LocalEffectiveDeletionTime;
+       AttributeDescription *si_ad_isRecycled;
+       AttributeDescription *si_ad_msDS_PSOApplied;
+       AttributeDescription *si_ad_msDS_PrincipalName;
+       AttributeDescription *si_ad_msDS_RevealedListBL;
+       AttributeDescription *si_ad_msDS_AuthenticatedToAccountlist;
+       AttributeDescription *si_ad_msDS_IsPartialReplicaFor;
+       AttributeDescription *si_ad_msDS_IsDomainFor;
+       AttributeDescription *si_ad_msDS_IsFullReplicaFor;
+       AttributeDescription *si_ad_msDS_RevealedDSAs;
+       AttributeDescription *si_ad_msDS_KrbTgtLinkBl;
+       AttributeDescription *si_ad_whenCreated;
+       AttributeDescription *si_ad_whenChanged;
+       AttributeDescription *si_ad_uSNCreated;
+       AttributeDescription *si_ad_uSNChanged;
+       AttributeDescription *si_ad_objectGUID;
+       AttributeDescription *si_ad_msDS_NC_RO_Replica_Locations_BL;
+       AttributeDescription *si_ad_memberOf;
+#endif
+
        /* Undefined Attribute Type */
        AttributeType   *si_at_undefined;