rework objectClass mucking to use syntax "pretty" routine

(be liberal in what you accept, strict in what you generate)
This commit is contained in:
Kurt Zeilenga 2003-04-24 23:40:55 +00:00
parent a609f87eb6
commit 3067954616
2 changed files with 146 additions and 167 deletions

View file

@ -32,7 +32,6 @@
/* not yet implemented */ /* not yet implemented */
#define integerFirstComponentNormalize NULL #define integerFirstComponentNormalize NULL
#define objectIdentifierNormalize NULL
#define objectIdentifierFirstComponentNormalize NULL #define objectIdentifierFirstComponentNormalize NULL
#define uniqueMemberMatch NULL #define uniqueMemberMatch NULL
@ -1425,41 +1424,46 @@ telephoneNumberNormalize(
} }
static int static int
oidValidate( numericoidValidate(
Syntax *syntax, Syntax *syntax,
struct berval *val ) struct berval *in )
{ {
ber_len_t i; struct berval val = *in;
if( val->bv_len == 0 ) { if( val.bv_len == 0 ) {
/* disallow empty strings */ /* disallow empty strings */
return LDAP_INVALID_SYNTAX; return LDAP_INVALID_SYNTAX;
} }
if( OID_LEADCHAR(val->bv_val[0]) ) { while( OID_LEADCHAR( val.bv_val[0] ) ) {
int dot = 0; if ( val.bv_len == 1 ) {
for(i=1; i < val->bv_len; i++) { return LDAP_SUCCESS;
if( OID_SEPARATOR( val->bv_val[i] ) ) { }
if( dot++ ) return 1;
} else if ( OID_CHAR( val->bv_val[i] ) ) { if ( val.bv_val[0] == '0' ) {
dot = 0; break;
} else { }
return LDAP_INVALID_SYNTAX;
val.bv_val++;
val.bv_len--;
while ( OID_LEADCHAR( val.bv_val[0] )) {
val.bv_val++;
val.bv_len--;
if ( val.bv_len == 0 ) {
return LDAP_SUCCESS;
} }
} }
return !dot ? LDAP_SUCCESS : LDAP_INVALID_SYNTAX; if( !OID_SEPARATOR( val.bv_val[0] )) {
break;
} else if( DESC_LEADCHAR(val->bv_val[0]) ) {
for(i=1; i < val->bv_len; i++) {
if( !DESC_CHAR(val->bv_val[i] ) ) {
return LDAP_INVALID_SYNTAX;
}
} }
return LDAP_SUCCESS; val.bv_val++;
val.bv_len--;
} }
return LDAP_INVALID_SYNTAX; return LDAP_INVALID_SYNTAX;
} }
@ -2689,7 +2693,7 @@ static slap_syntax_defs_rec syntax_defs[] = {
{"( 1.3.6.1.4.1.1466.115.121.1.37 DESC 'Object Class Description' )", {"( 1.3.6.1.4.1.1466.115.121.1.37 DESC 'Object Class Description' )",
0, NULL, NULL}, 0, NULL, NULL},
{"( 1.3.6.1.4.1.1466.115.121.1.38 DESC 'OID' )", {"( 1.3.6.1.4.1.1466.115.121.1.38 DESC 'OID' )",
0, oidValidate, NULL}, 0, numericoidValidate, NULL},
{"( 1.3.6.1.4.1.1466.115.121.1.39 DESC 'Other Mailbox' )", {"( 1.3.6.1.4.1.1466.115.121.1.39 DESC 'Other Mailbox' )",
0, IA5StringValidate, NULL}, 0, IA5StringValidate, NULL},
{"( 1.3.6.1.4.1.1466.115.121.1.40 DESC 'Octet String' )", {"( 1.3.6.1.4.1.1466.115.121.1.40 DESC 'Octet String' )",
@ -2840,7 +2844,7 @@ static slap_mrule_defs_rec mrule_defs[] = {
{"( 2.5.13.0 NAME 'objectIdentifierMatch' " {"( 2.5.13.0 NAME 'objectIdentifierMatch' "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )",
SLAP_MR_EQUALITY | SLAP_MR_EXT, NULL, SLAP_MR_EQUALITY | SLAP_MR_EXT, NULL,
NULL, objectIdentifierNormalize, octetStringMatch, NULL, NULL, octetStringMatch,
octetStringIndexer, octetStringFilter, octetStringIndexer, octetStringFilter,
NULL }, NULL },

View file

@ -23,10 +23,8 @@ int schema_init_done = 0;
struct slap_internal_schema slap_schema; struct slap_internal_schema slap_schema;
static int objectClassNormalize( static int objectClassPretty(
slap_mask_t use, struct slap_syntax *syntax,
struct slap_syntax *syntax, /* NULL if in is asserted value */
struct slap_matching_rule *mr,
struct berval * in, struct berval * in,
struct berval * out, struct berval * out,
void *ctx ) void *ctx )
@ -39,16 +37,6 @@ static int objectClassNormalize(
ber_dupbv_x( out, in, ctx ); ber_dupbv_x( out, in, ctx );
} }
#if OCDEBUG
#ifdef NEW_LOGGING
LDAP_LOG( CONFIG, ENTRY,
"< objectClassNormalize(%s, %s)\n", in->bv_val, out->bv_val, 0 );
#else
Debug( LDAP_DEBUG_TRACE, "< objectClassNormalize(%s,%s)\n",
in->bv_val, out->bv_val, 0 );
#endif
#endif
return LDAP_SUCCESS; return LDAP_SUCCESS;
} }
@ -65,16 +53,6 @@ objectSubClassMatch(
ObjectClass *oc = oc_bvfind( value ); ObjectClass *oc = oc_bvfind( value );
ObjectClass *asserted = oc_bvfind( a ); ObjectClass *asserted = oc_bvfind( a );
#if OCDEBUG
#ifdef NEW_LOGGING
LDAP_LOG( CONFIG, ENTRY,
"> objectSubClassMatch(%s, %s)\n", value->bv_val, a->bv_val, 0 );
#else
Debug( LDAP_DEBUG_TRACE, "> objectSubClassMatch(%s,%s)\n",
value->bv_val, a->bv_val, 0 );
#endif
#endif
if( asserted == NULL ) { if( asserted == NULL ) {
if( OID_LEADCHAR( *a->bv_val ) ) { if( OID_LEADCHAR( *a->bv_val ) ) {
/* OID form, return FALSE */ /* OID form, return FALSE */
@ -91,24 +69,12 @@ objectSubClassMatch(
return SLAPD_COMPARE_UNDEFINED; return SLAPD_COMPARE_UNDEFINED;
} }
if( SLAP_MR_IS_VALUE_OF_ATTRIBUTE_SYNTAX( flags ) ) if( SLAP_MR_IS_VALUE_OF_ATTRIBUTE_SYNTAX( flags ) ) {
{
*matchp = ( asserted != oc ); *matchp = ( asserted != oc );
} else { } else {
*matchp = !is_object_subclass( asserted, oc ); *matchp = !is_object_subclass( asserted, oc );
} }
#if OCDEBUG
#ifdef NEW_LOGGING
LDAP_LOG( CONFIG, ENTRY,
"< objectSubClassMatch(%s, %s) = %d\n",
value->bv_val, a->bv_val, *matchp );
#else
Debug( LDAP_DEBUG_TRACE, "< objectSubClassMatch(%s,%s) = %d\n",
value->bv_val, a->bv_val, *matchp );
#endif
#endif
return LDAP_SUCCESS; return LDAP_SUCCESS;
} }
@ -140,17 +106,6 @@ static int objectSubClassIndexer(
} else { } else {
ocvalues[i] = values[i]; ocvalues[i] = values[i];
} }
#if OCDEBUG
#ifdef NEW_LOGGING
LDAP_LOG( CONFIG, ENTRY,
"> objectSubClassIndexer(%d, %s)\n",
i, ocvalues[i].bv_val, 0 );
#else
Debug( LDAP_DEBUG_TRACE,
"> objectSubClassIndexer(%d, %s)\n",
i, ocvalues[i].bv_val, 0 );
#endif
#endif
} }
ocvalues[i].bv_val = NULL; ocvalues[i].bv_val = NULL;
@ -168,18 +123,6 @@ static int objectSubClassIndexer(
int k; int k;
for( k=0; k<noc; k++ ) { for( k=0; k<noc; k++ ) {
#if 0
#ifdef NEW_LOGGING
LDAP_LOG( CONFIG, ENTRY,
"= objectSubClassIndexer(%d, %s, %s)\n",
k, ocvalues[k].bv_val, sup->soc_cname.bv_val );
#else
Debug( LDAP_DEBUG_TRACE,
"= objectSubClassIndexer(%d, %s, %s)\n",
k, ocvalues[k].bv_val, sup->soc_cname.bv_val );
#endif
#endif
if( bvmatch( &ocvalues[k], &sup->soc_cname ) ) { if( bvmatch( &ocvalues[k], &sup->soc_cname ) ) {
found++; found++;
break; break;
@ -201,32 +144,10 @@ static int objectSubClassIndexer(
ocvalues[noc].bv_len = 0; ocvalues[noc].bv_len = 0;
ocvalues[noc].bv_val = NULL; ocvalues[noc].bv_val = NULL;
#if OCDEBUG
#ifdef NEW_LOGGING
LDAP_LOG( CONFIG, ENTRY,
"< objectSubClassIndexer(%d, %d, %s)\n",
i, k, sup->soc_cname.bv_val );
#else
Debug( LDAP_DEBUG_TRACE,
"< objectSubClassIndexer(%d, %d, %s)\n",
i, k, sup->soc_cname.bv_val );
#endif
#endif
} }
} }
} }
#if 0
#ifdef NEW_LOGGING
LDAP_LOG( CONFIG, ENTRY,
"< objectSubClassIndexer(%d)\n", noc, 0, 0 );
#else
Debug( LDAP_DEBUG_TRACE, "< objectSubClassIndexer(%d)\n",
noc, 0, 0 );
#endif
#endif
rc = octetStringIndexer( use, mask, syntax, mr, rc = octetStringIndexer( use, mask, syntax, mr,
prefix, ocvalues, keysp, ctx ); prefix, ocvalues, keysp, ctx );
@ -234,36 +155,7 @@ static int objectSubClassIndexer(
return rc; return rc;
} }
/* Index generation function */ #define objectSubClassFilter octetStringFilter
static int objectSubClassFilter(
slap_mask_t use,
slap_mask_t flags,
Syntax *syntax,
MatchingRule *mr,
struct berval *prefix,
void * assertedValue,
BerVarray *keysp,
void *ctx )
{
#if OCDEBUG
struct berval *bv = (struct berval *) assertedValue;
ObjectClass *oc = oc_bvfind( bv );
if( oc ) {
bv = &oc->soc_cname;
}
#ifdef NEW_LOGGING
LDAP_LOG( CONFIG, ENTRY,
"< objectSubClassFilter(%s)\n", bv->bv_val, 0, 0 );
#else
Debug( LDAP_DEBUG_TRACE, "< objectSubClassFilter(%s)\n",
bv->bv_val, 0, 0 );
#endif
#endif
return octetStringFilter( use, flags, syntax, mr,
prefix, assertedValue, keysp, ctx );
}
static ObjectClassSchemaCheckFN rootDseObjectClass; static ObjectClassSchemaCheckFN rootDseObjectClass;
static ObjectClassSchemaCheckFN aliasObjectClass; static ObjectClassSchemaCheckFN aliasObjectClass;
@ -371,11 +263,13 @@ static struct slap_schema_ad_map {
char *ssam_defn; char *ssam_defn;
AttributeTypeSchemaCheckFN *ssam_check; AttributeTypeSchemaCheckFN *ssam_check;
slap_mask_t ssam_flags; slap_mask_t ssam_flags;
slap_mr_convert_func *ssam_convert; slap_syntax_validate_func *ssam_syn_validate;
slap_mr_normalize_func *ssam_normalize; slap_syntax_transform_func *ssam_syn_pretty;
slap_mr_match_func *ssam_match; slap_mr_convert_func *ssam_mr_convert;
slap_mr_indexer_func *ssam_indexer; slap_mr_normalize_func *ssam_mr_normalize;
slap_mr_filter_func *ssam_filter; slap_mr_match_func *ssam_mr_match;
slap_mr_indexer_func *ssam_mr_indexer;
slap_mr_filter_func *ssam_mr_filter;
size_t ssam_offset; size_t ssam_offset;
} ad_map[] = { } ad_map[] = {
{ "objectClass", "( 2.5.4.0 NAME 'objectClass' " { "objectClass", "( 2.5.4.0 NAME 'objectClass' "
@ -383,7 +277,8 @@ static struct slap_schema_ad_map {
"EQUALITY objectIdentifierMatch " "EQUALITY objectIdentifierMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )",
NULL, SLAP_AT_FINAL, NULL, SLAP_AT_FINAL,
NULL, objectClassNormalize, objectSubClassMatch, NULL, objectClassPretty,
NULL, NULL, objectSubClassMatch,
objectSubClassIndexer, objectSubClassFilter, objectSubClassIndexer, objectSubClassFilter,
offsetof(struct slap_internal_schema, si_ad_objectClass) }, offsetof(struct slap_internal_schema, si_ad_objectClass) },
@ -394,7 +289,8 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, 0, NULL, 0,
NULL, objectClassNormalize, objectSubClassMatch, NULL, objectClassPretty,
NULL, NULL, objectSubClassMatch,
objectSubClassIndexer, objectSubClassFilter, objectSubClassIndexer, objectSubClassFilter,
offsetof(struct slap_internal_schema, si_ad_structuralObjectClass) }, offsetof(struct slap_internal_schema, si_ad_structuralObjectClass) },
{ "createTimestamp", "( 2.5.18.1 NAME 'createTimestamp' " { "createTimestamp", "( 2.5.18.1 NAME 'createTimestamp' "
@ -404,6 +300,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_createTimestamp) }, offsetof(struct slap_internal_schema, si_ad_createTimestamp) },
{ "modifyTimestamp", "( 2.5.18.2 NAME 'modifyTimestamp' " { "modifyTimestamp", "( 2.5.18.2 NAME 'modifyTimestamp' "
@ -413,6 +310,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_modifyTimestamp) }, offsetof(struct slap_internal_schema, si_ad_modifyTimestamp) },
{ "creatorsName", "( 2.5.18.3 NAME 'creatorsName' " { "creatorsName", "( 2.5.18.3 NAME 'creatorsName' "
@ -421,6 +319,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_creatorsName) }, offsetof(struct slap_internal_schema, si_ad_creatorsName) },
{ "modifiersName", "( 2.5.18.4 NAME 'modifiersName' " { "modifiersName", "( 2.5.18.4 NAME 'modifiersName' "
@ -429,6 +328,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_modifiersName) }, offsetof(struct slap_internal_schema, si_ad_modifiersName) },
{ "hasSubordinates", "( 2.5.18.9 NAME 'hasSubordinates' " { "hasSubordinates", "( 2.5.18.9 NAME 'hasSubordinates' "
@ -437,6 +337,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_hasSubordinates) }, offsetof(struct slap_internal_schema, si_ad_hasSubordinates) },
{ "subschemaSubentry", "( 2.5.18.10 NAME 'subschemaSubentry' " { "subschemaSubentry", "( 2.5.18.10 NAME 'subschemaSubentry' "
@ -445,6 +346,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE "
"NO-USER-MODIFICATION USAGE directoryOperation )", "NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_subschemaSubentry) }, offsetof(struct slap_internal_schema, si_ad_subschemaSubentry) },
#ifdef LDAP_DEVEL #ifdef LDAP_DEVEL
@ -454,6 +356,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 "
"NO-USER-MODIFICATION USAGE directoryOperation )", "NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_collectiveSubentries) }, offsetof(struct slap_internal_schema, si_ad_collectiveSubentries) },
{ "collectiveExclusions", "( 2.5.18.7 NAME 'collectiveExclusions' " { "collectiveExclusions", "( 2.5.18.7 NAME 'collectiveExclusions' "
@ -461,6 +364,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 "
"USAGE directoryOperation )", "USAGE directoryOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_collectiveExclusions) }, offsetof(struct slap_internal_schema, si_ad_collectiveExclusions) },
#endif #endif
@ -471,6 +375,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_entryUUID) }, offsetof(struct slap_internal_schema, si_ad_entryUUID) },
{ "entryCSN", "( 1.3.6.1.4.1.4203.666.1.7 NAME 'entryCSN' " { "entryCSN", "( 1.3.6.1.4.1.4203.666.1.7 NAME 'entryCSN' "
@ -480,6 +385,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_entryCSN) }, offsetof(struct slap_internal_schema, si_ad_entryCSN) },
{ "namingCSN", "( 1.3.6.1.4.1.4203.666.1.13 NAME 'namingCSN' " { "namingCSN", "( 1.3.6.1.4.1.4203.666.1.13 NAME 'namingCSN' "
@ -489,6 +395,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_namingCSN) }, offsetof(struct slap_internal_schema, si_ad_namingCSN) },
@ -498,6 +405,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_superiorUUID) }, offsetof(struct slap_internal_schema, si_ad_superiorUUID) },
@ -509,6 +417,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} "
"NO-USER-MODIFICATION USAGE directoryOperation )", "NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, 0, /* SLAP_AT_HIDE or SLAP_AT_NONE ? */ NULL, 0, /* SLAP_AT_HIDE or SLAP_AT_NONE ? */
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_queryid) }, offsetof(struct slap_internal_schema, si_ad_queryid) },
#endif /* LDAP_CACHING */ #endif /* LDAP_CACHING */
@ -522,6 +431,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_syncreplCookie) }, offsetof(struct slap_internal_schema, si_ad_syncreplCookie) },
#endif #endif
@ -531,6 +441,7 @@ static struct slap_schema_ad_map {
"DESC 'RFC2252: alternative servers' " "DESC 'RFC2252: alternative servers' "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 USAGE dSAOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 USAGE dSAOperation )",
rootDseAttribute, 0, rootDseAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_altServer) }, offsetof(struct slap_internal_schema, si_ad_altServer) },
{ "namingContexts", "( 1.3.6.1.4.1.1466.101.120.5 " { "namingContexts", "( 1.3.6.1.4.1.1466.101.120.5 "
@ -538,6 +449,7 @@ static struct slap_schema_ad_map {
"DESC 'RFC2252: naming contexts' " "DESC 'RFC2252: naming contexts' "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 USAGE dSAOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 USAGE dSAOperation )",
rootDseAttribute, 0, rootDseAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_namingContexts) }, offsetof(struct slap_internal_schema, si_ad_namingContexts) },
{ "supportedControl", "( 1.3.6.1.4.1.1466.101.120.13 " { "supportedControl", "( 1.3.6.1.4.1.1466.101.120.13 "
@ -545,6 +457,7 @@ static struct slap_schema_ad_map {
"DESC 'RFC2252: supported controls' " "DESC 'RFC2252: supported controls' "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation )",
rootDseAttribute, 0, rootDseAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_supportedControl) }, offsetof(struct slap_internal_schema, si_ad_supportedControl) },
{ "supportedExtension", "( 1.3.6.1.4.1.1466.101.120.7 " { "supportedExtension", "( 1.3.6.1.4.1.1466.101.120.7 "
@ -552,6 +465,7 @@ static struct slap_schema_ad_map {
"DESC 'RFC2252: supported extended operations' " "DESC 'RFC2252: supported extended operations' "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation )",
rootDseAttribute, 0, rootDseAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_supportedExtension) }, offsetof(struct slap_internal_schema, si_ad_supportedExtension) },
{ "supportedLDAPVersion", "( 1.3.6.1.4.1.1466.101.120.15 " { "supportedLDAPVersion", "( 1.3.6.1.4.1.1466.101.120.15 "
@ -559,6 +473,7 @@ static struct slap_schema_ad_map {
"DESC 'RFC2252: supported LDAP versions' " "DESC 'RFC2252: supported LDAP versions' "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 USAGE dSAOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 USAGE dSAOperation )",
rootDseAttribute, 0, rootDseAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_supportedLDAPVersion) }, offsetof(struct slap_internal_schema, si_ad_supportedLDAPVersion) },
{ "supportedSASLMechanisms", "( 1.3.6.1.4.1.1466.101.120.14 " { "supportedSASLMechanisms", "( 1.3.6.1.4.1.1466.101.120.14 "
@ -566,6 +481,7 @@ static struct slap_schema_ad_map {
"DESC 'RFC2252: supported SASL mechanisms'" "DESC 'RFC2252: supported SASL mechanisms'"
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE dSAOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE dSAOperation )",
rootDseAttribute, 0, rootDseAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_supportedSASLMechanisms) }, offsetof(struct slap_internal_schema, si_ad_supportedSASLMechanisms) },
{ "supportedFeatures", "( 1.3.6.1.4.1.4203.1.3.5 " { "supportedFeatures", "( 1.3.6.1.4.1.4203.1.3.5 "
@ -575,6 +491,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 "
"USAGE dSAOperation )", "USAGE dSAOperation )",
rootDseAttribute, 0, rootDseAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_supportedFeatures) }, offsetof(struct slap_internal_schema, si_ad_supportedFeatures) },
{ "monitorContext", "( 1.3.6.1.4.1.4203.666.1.10 " { "monitorContext", "( 1.3.6.1.4.1.4203.666.1.10 "
@ -584,6 +501,7 @@ static struct slap_schema_ad_map {
"SINGLE-VALUE NO-USER-MODIFICATION " "SINGLE-VALUE NO-USER-MODIFICATION "
"USAGE dSAOperation )", "USAGE dSAOperation )",
rootDseAttribute, SLAP_AT_HIDE, rootDseAttribute, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_monitorContext) }, offsetof(struct slap_internal_schema, si_ad_monitorContext) },
{ "vendorName", "( 1.3.6.1.1.4 NAME 'vendorName' " { "vendorName", "( 1.3.6.1.1.4 NAME 'vendorName' "
@ -593,6 +511,7 @@ static struct slap_schema_ad_map {
"SINGLE-VALUE NO-USER-MODIFICATION " "SINGLE-VALUE NO-USER-MODIFICATION "
"USAGE dSAOperation )", "USAGE dSAOperation )",
rootDseAttribute, 0, rootDseAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_vendorName) }, offsetof(struct slap_internal_schema, si_ad_vendorName) },
{ "vendorVersion", "( 1.3.6.1.1.5 NAME 'vendorVersion' " { "vendorVersion", "( 1.3.6.1.1.5 NAME 'vendorVersion' "
@ -602,6 +521,7 @@ static struct slap_schema_ad_map {
"SINGLE-VALUE NO-USER-MODIFICATION " "SINGLE-VALUE NO-USER-MODIFICATION "
"USAGE dSAOperation )", "USAGE dSAOperation )",
rootDseAttribute, 0, rootDseAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_vendorVersion) }, offsetof(struct slap_internal_schema, si_ad_vendorVersion) },
@ -611,6 +531,7 @@ static struct slap_schema_ad_map {
"USAGE directoryOperation " "USAGE directoryOperation "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )",
administrativeRoleAttribute, SLAP_AT_HIDE, administrativeRoleAttribute, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_administrativeRole) }, offsetof(struct slap_internal_schema, si_ad_administrativeRole) },
{ "subtreeSpecification", "( 2.5.18.6 NAME 'subtreeSpecification' " { "subtreeSpecification", "( 2.5.18.6 NAME 'subtreeSpecification' "
@ -618,6 +539,7 @@ static struct slap_schema_ad_map {
"USAGE directoryOperation " "USAGE directoryOperation "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.45 )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.45 )",
subentryAttribute, SLAP_AT_HIDE, subentryAttribute, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_subtreeSpecification) }, offsetof(struct slap_internal_schema, si_ad_subtreeSpecification) },
@ -628,6 +550,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.17 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.17 "
"USAGE directoryOperation ) ", "USAGE directoryOperation ) ",
subentryAttribute, SLAP_AT_HIDE, subentryAttribute, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_ditStructureRules) }, offsetof(struct slap_internal_schema, si_ad_ditStructureRules) },
{ "ditContentRules", "( 2.5.21.2 NAME 'dITContentRules' " { "ditContentRules", "( 2.5.21.2 NAME 'dITContentRules' "
@ -635,6 +558,7 @@ static struct slap_schema_ad_map {
"EQUALITY objectIdentifierFirstComponentMatch " "EQUALITY objectIdentifierFirstComponentMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.16 USAGE directoryOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.16 USAGE directoryOperation )",
subentryAttribute, SLAP_AT_HIDE, subentryAttribute, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_ditContentRules) }, offsetof(struct slap_internal_schema, si_ad_ditContentRules) },
{ "matchingRules", "( 2.5.21.4 NAME 'matchingRules' " { "matchingRules", "( 2.5.21.4 NAME 'matchingRules' "
@ -642,6 +566,7 @@ static struct slap_schema_ad_map {
"EQUALITY objectIdentifierFirstComponentMatch " "EQUALITY objectIdentifierFirstComponentMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.30 USAGE directoryOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.30 USAGE directoryOperation )",
subentryAttribute, 0, subentryAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_matchingRules) }, offsetof(struct slap_internal_schema, si_ad_matchingRules) },
{ "attributeTypes", "( 2.5.21.5 NAME 'attributeTypes' " { "attributeTypes", "( 2.5.21.5 NAME 'attributeTypes' "
@ -649,6 +574,7 @@ static struct slap_schema_ad_map {
"EQUALITY objectIdentifierFirstComponentMatch " "EQUALITY objectIdentifierFirstComponentMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.3 USAGE directoryOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.3 USAGE directoryOperation )",
subentryAttribute, 0, subentryAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_attributeTypes) }, offsetof(struct slap_internal_schema, si_ad_attributeTypes) },
{ "objectClasses", "( 2.5.21.6 NAME 'objectClasses' " { "objectClasses", "( 2.5.21.6 NAME 'objectClasses' "
@ -656,6 +582,7 @@ static struct slap_schema_ad_map {
"EQUALITY objectIdentifierFirstComponentMatch " "EQUALITY objectIdentifierFirstComponentMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.37 USAGE directoryOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.37 USAGE directoryOperation )",
subentryAttribute, 0, subentryAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_objectClasses) }, offsetof(struct slap_internal_schema, si_ad_objectClasses) },
{ "nameForms", "( 2.5.21.7 NAME 'nameForms' " { "nameForms", "( 2.5.21.7 NAME 'nameForms' "
@ -663,6 +590,7 @@ static struct slap_schema_ad_map {
"EQUALITY objectIdentifierFirstComponentMatch " "EQUALITY objectIdentifierFirstComponentMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.35 USAGE directoryOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.35 USAGE directoryOperation )",
subentryAttribute, SLAP_AT_HIDE, subentryAttribute, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_nameForms) }, offsetof(struct slap_internal_schema, si_ad_nameForms) },
{ "matchingRuleUse", "( 2.5.21.8 NAME 'matchingRuleUse' " { "matchingRuleUse", "( 2.5.21.8 NAME 'matchingRuleUse' "
@ -670,6 +598,7 @@ static struct slap_schema_ad_map {
"EQUALITY objectIdentifierFirstComponentMatch " "EQUALITY objectIdentifierFirstComponentMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.31 USAGE directoryOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.31 USAGE directoryOperation )",
subentryAttribute, 0, subentryAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_matchingRuleUse) }, offsetof(struct slap_internal_schema, si_ad_matchingRuleUse) },
@ -678,6 +607,7 @@ static struct slap_schema_ad_map {
"EQUALITY objectIdentifierFirstComponentMatch " "EQUALITY objectIdentifierFirstComponentMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.54 USAGE directoryOperation )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.54 USAGE directoryOperation )",
subentryAttribute, 0, subentryAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_ldapSyntaxes) }, offsetof(struct slap_internal_schema, si_ad_ldapSyntaxes) },
@ -688,6 +618,7 @@ static struct slap_schema_ad_map {
"EQUALITY distinguishedNameMatch " "EQUALITY distinguishedNameMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )",
aliasAttribute, SLAP_AT_FINAL, aliasAttribute, SLAP_AT_FINAL,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_aliasedObjectName) }, offsetof(struct slap_internal_schema, si_ad_aliasedObjectName) },
{ "ref", "( 2.16.840.1.113730.3.1.34 NAME 'ref' " { "ref", "( 2.16.840.1.113730.3.1.34 NAME 'ref' "
@ -696,6 +627,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 "
"USAGE distributedOperation )", "USAGE distributedOperation )",
referralAttribute, 0, referralAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_ref) }, offsetof(struct slap_internal_schema, si_ad_ref) },
@ -706,6 +638,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.4203.1.1.1 " "SYNTAX 1.3.6.1.4.1.4203.1.1.1 "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_entry) }, offsetof(struct slap_internal_schema, si_ad_entry) },
{ "children", "( 1.3.6.1.4.1.4203.1.3.2 " { "children", "( 1.3.6.1.4.1.4203.1.3.2 "
@ -714,6 +647,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.4203.1.1.1 " "SYNTAX 1.3.6.1.4.1.4203.1.1.1 "
"SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )", "SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_children) }, offsetof(struct slap_internal_schema, si_ad_children) },
{ "saslAuthzTo", "( 1.3.6.1.4.1.4203.666.1.8 " { "saslAuthzTo", "( 1.3.6.1.4.1.4203.666.1.8 "
@ -723,6 +657,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 "
"USAGE distributedOperation )", "USAGE distributedOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_saslAuthzTo) }, offsetof(struct slap_internal_schema, si_ad_saslAuthzTo) },
{ "saslAuthzFrom", "( 1.3.6.1.4.1.4203.666.1.9 " { "saslAuthzFrom", "( 1.3.6.1.4.1.4203.666.1.9 "
@ -732,6 +667,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 "
"USAGE distributedOperation )", "USAGE distributedOperation )",
NULL, SLAP_AT_HIDE, NULL, SLAP_AT_HIDE,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_saslAuthzFrom) }, offsetof(struct slap_internal_schema, si_ad_saslAuthzFrom) },
#ifdef SLAPD_ACI_ENABLED #ifdef SLAPD_ACI_ENABLED
@ -742,6 +678,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.4203.666.2.1 " "SYNTAX 1.3.6.1.4.1.4203.666.2.1 "
"USAGE directoryOperation )", "USAGE directoryOperation )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_aci) }, offsetof(struct slap_internal_schema, si_ad_aci) },
#endif #endif
@ -752,6 +689,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE "
"NO-USER-MODIFICATION USAGE dSAOperation )", "NO-USER-MODIFICATION USAGE dSAOperation )",
dynamicAttribute, 0, dynamicAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_entryTtl) }, offsetof(struct slap_internal_schema, si_ad_entryTtl) },
{ "dynamicSubtrees", "( 1.3.6.1.4.1.1466.101.119.4 " { "dynamicSubtrees", "( 1.3.6.1.4.1.1466.101.119.4 "
@ -760,6 +698,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 NO-USER-MODIFICATION " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 NO-USER-MODIFICATION "
"USAGE dSAOperation )", "USAGE dSAOperation )",
rootDseAttribute, 0, rootDseAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_dynamicSubtrees) }, offsetof(struct slap_internal_schema, si_ad_dynamicSubtrees) },
#endif #endif
@ -770,6 +709,7 @@ static struct slap_schema_ad_map {
"EQUALITY distinguishedNameMatch " "EQUALITY distinguishedNameMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )",
NULL, SLAP_AT_ABSTRACT, NULL, SLAP_AT_ABSTRACT,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_distinguishedName) }, offsetof(struct slap_internal_schema, si_ad_distinguishedName) },
{ "name", "( 2.5.4.41 NAME 'name' " { "name", "( 2.5.4.41 NAME 'name' "
@ -778,12 +718,14 @@ static struct slap_schema_ad_map {
"SUBSTR caseIgnoreSubstringsMatch " "SUBSTR caseIgnoreSubstringsMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )",
NULL, SLAP_AT_ABSTRACT, NULL, SLAP_AT_ABSTRACT,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_name) }, offsetof(struct slap_internal_schema, si_ad_name) },
{ "cn", "( 2.5.4.3 NAME ( 'cn' 'commonName' ) " { "cn", "( 2.5.4.3 NAME ( 'cn' 'commonName' ) "
"DESC 'RFC2256: common name(s) for which the entity is known by' " "DESC 'RFC2256: common name(s) for which the entity is known by' "
"SUP name )", "SUP name )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_cn) }, offsetof(struct slap_internal_schema, si_ad_cn) },
{ "userPassword", "( 2.5.4.35 NAME 'userPassword' " { "userPassword", "( 2.5.4.35 NAME 'userPassword' "
@ -791,6 +733,7 @@ static struct slap_schema_ad_map {
"EQUALITY octetStringMatch " "EQUALITY octetStringMatch "
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{128} )", "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{128} )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_userPassword) }, offsetof(struct slap_internal_schema, si_ad_userPassword) },
@ -801,6 +744,7 @@ static struct slap_schema_ad_map {
"EQUALITY 1.3.6.1.4.1.4203.1.2.2 " "EQUALITY 1.3.6.1.4.1.4203.1.2.2 "
"SYNTAX 1.3.6.1.4.1.4203.1.1.2 )", "SYNTAX 1.3.6.1.4.1.4203.1.1.2 )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_authPassword) }, offsetof(struct slap_internal_schema, si_ad_authPassword) },
{ "supportedAuthPasswordSchemes", "( 1.3.6.1.4.1.4203.1.3.3 " { "supportedAuthPasswordSchemes", "( 1.3.6.1.4.1.4203.1.3.3 "
@ -810,6 +754,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} "
"USAGE dSAOperation )", "USAGE dSAOperation )",
subschemaAttribute, 0, subschemaAttribute, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_authPassword) }, offsetof(struct slap_internal_schema, si_ad_authPassword) },
#endif #endif
@ -821,6 +766,7 @@ static struct slap_schema_ad_map {
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 "
"SINGLE-VALUE )", "SINGLE-VALUE )",
NULL, 0, NULL, 0,
NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
offsetof(struct slap_internal_schema, si_ad_krbName) }, offsetof(struct slap_internal_schema, si_ad_krbName) },
#endif #endif
@ -834,7 +780,7 @@ static AttributeType slap_at_undefined = {
{ sizeof("UNDEFINED")-1, "UNDEFINED" }, /* cname */ { sizeof("UNDEFINED")-1, "UNDEFINED" }, /* cname */
NULL, /* sup */ NULL, /* sup */
NULL, /* subtypes */ NULL, /* subtypes */
NULL, NULL, NULL, NULL, /* matching rules */ NULL, NULL, NULL, NULL, /* matching rules routines */
NULL, /* syntax (this may need to be defined) */ NULL, /* syntax (this may need to be defined) */
(AttributeTypeSchemaCheckFN *) 0, /* schema check function */ (AttributeTypeSchemaCheckFN *) 0, /* schema check function */
SLAP_AT_ABSTRACT|SLAP_AT_FINAL, /* mask */ SLAP_AT_ABSTRACT|SLAP_AT_FINAL, /* mask */
@ -949,6 +895,7 @@ slap_schema_load( void )
{ {
int rc; int rc;
const char *text; const char *text;
Syntax *syntax = NULL;
AttributeDescription ** adp = (AttributeDescription **) AttributeDescription ** adp = (AttributeDescription **)
&(((char *) &slap_schema)[ad_map[i].ssam_offset]); &(((char *) &slap_schema)[ad_map[i].ssam_offset]);
@ -970,32 +917,60 @@ slap_schema_load( void )
/* install flags */ /* install flags */
(*adp)->ad_type->sat_flags |= ad_map[i].ssam_flags; (*adp)->ad_type->sat_flags |= ad_map[i].ssam_flags;
/* install custom rule routine */
if( ad_map[i].ssam_convert || /* install custom syntax routines */
ad_map[i].ssam_normalize || if( ad_map[i].ssam_syn_validate ||
ad_map[i].ssam_match || ad_map[i].ssam_syn_pretty )
ad_map[i].ssam_indexer || {
ad_map[i].ssam_filter ) Syntax *syn;
syntax = (*adp)->ad_type->sat_syntax;
syn = ch_malloc( sizeof( Syntax ) );
*syn = *syntax;
if( ad_map[i].ssam_syn_validate ) {
syn->ssyn_validate = ad_map[i].ssam_syn_validate;
}
if( ad_map[i].ssam_syn_pretty ) {
syn->ssyn_pretty = ad_map[i].ssam_syn_pretty;
}
(*adp)->ad_type->sat_syntax = syn;
}
/* install custom rule routines */
if( ( (*adp)->ad_type->sat_equality != NULL &&
syntax == (*adp)->ad_type->sat_equality->smr_syntax ) ||
ad_map[i].ssam_mr_convert ||
ad_map[i].ssam_mr_normalize ||
ad_map[i].ssam_mr_match ||
ad_map[i].ssam_mr_indexer ||
ad_map[i].ssam_mr_filter )
{ {
MatchingRule *mr = ch_malloc( sizeof( MatchingRule ) ); MatchingRule *mr = ch_malloc( sizeof( MatchingRule ) );
*mr = *(*adp)->ad_type->sat_equality; *mr = *(*adp)->ad_type->sat_equality;
if ( syntax == mr->smr_syntax ) {
mr->smr_syntax = (*adp)->ad_type->sat_syntax;
}
if ( ad_map[i].ssam_mr_convert ) {
mr->smr_convert = ad_map[i].ssam_mr_convert;
}
if ( ad_map[i].ssam_mr_normalize ) {
mr->smr_normalize = ad_map[i].ssam_mr_normalize;
}
if ( ad_map[i].ssam_mr_match ) {
mr->smr_match = ad_map[i].ssam_mr_match;
}
if ( ad_map[i].ssam_mr_indexer ) {
mr->smr_indexer = ad_map[i].ssam_mr_indexer;
}
if ( ad_map[i].ssam_mr_filter ) {
mr->smr_filter = ad_map[i].ssam_mr_filter;
}
(*adp)->ad_type->sat_equality = mr; (*adp)->ad_type->sat_equality = mr;
if( ad_map[i].ssam_convert ) {
mr->smr_convert = ad_map[i].ssam_convert;
}
if( ad_map[i].ssam_normalize ) {
mr->smr_normalize = ad_map[i].ssam_normalize;
}
if( ad_map[i].ssam_match ) {
mr->smr_match = ad_map[i].ssam_match;
}
if( ad_map[i].ssam_indexer ) {
mr->smr_indexer = ad_map[i].ssam_indexer;
}
if( ad_map[i].ssam_filter ) {
mr->smr_filter = ad_map[i].ssam_filter;
}
} }
} }
} }