Home | History | Annotate | Download | only in slapd

Lines Matching refs:mr

1 /*	$NetBSD: mr.c,v 1.4 2025/09/05 21:16:25 christos Exp $	*/
3 /* mr.c - routines to manage matching rule definitions */
20 __RCSID("$NetBSD: mr.c,v 1.4 2025/09/05 21:16:25 christos Exp $");
156 MatchingRule *mr )
161 assert( mr != NULL );
163 if ( mr->smr_compat_syntaxes ) {
166 mr->smr_compat_syntaxes[ n ];
169 if ( mr->smr_compat_syntaxes[ n ] == syn ) {
176 mr->smr_compat_syntaxes = ch_realloc(
177 mr->smr_compat_syntaxes,
179 mr->smr_compat_syntaxes[ n ] = syn;
180 mr->smr_compat_syntaxes[ n + 1 ] = NULL;
202 MatchingRule *mr = mr_find( mrs[ r ] );
203 if ( mr == NULL ) {
208 rc += mr_make_syntax_compat_with_mr( syn, mr );
216 LDAPMatchingRule *mr,
247 AC_MEMCPY( &smr->smr_mrule, mr, sizeof(LDAPMatchingRule));
254 smr->smr_oidlen = strlen( mr->mr_oid );
284 LDAPMatchingRule *mr;
326 mr = ldap_str2matchingrule( def->mrd_desc, &code, &err,
328 if ( !mr ) {
337 code = mr_add( mr, def, amr, &err );
339 ldap_memfree( mr );
378 MatchingRule *mr;
383 LDAP_SLIST_FOREACH( mr, &mr_list, smr_next ) {
390 mr->smr_mru = NULL;
393 if ( mr->smr_usage & SLAP_MR_HIDE ) {
405 if (!( ( mr->smr_usage & SLAP_MR_EXT )
406 || mr->smr_compat_syntaxes ) )
415 mru->smru_mr = mr;
416 mru->smru_obsolete = mr->smr_obsolete;
419 mru->smru_oid = mr->smr_oid;
420 mru->smru_names = mr->smr_names;
421 mru->smru_desc = mr->smr_desc;
431 if( mr_usable_with_at( mr, at )) {
451 mr->smr_mru = mru;
466 MatchingRule *mr,
469 if ( ( mr->smr_usage & SLAP_MR_EXT ) && (
470 mr->smr_syntax == at->sat_syntax ||
471 mr == at->sat_equality ||
472 mr == at->sat_approx ||
473 syn_is_sup( at->sat_syntax, mr->smr_syntax ) ) )
478 if ( mr->smr_compat_syntaxes ) {
480 for( i=0; mr->smr_compat_syntaxes[i]; i++ ) {
481 if( at->sat_syntax == mr->smr_compat_syntaxes[i] ) {
492 MatchingRule *mr;
495 LDAP_SLIST_FOREACH(mr, &mr_list, smr_next ) {
496 if ( mr->smr_usage & SLAP_MR_HIDE ) {
501 if ( ! mr->smr_match ) {
506 if ( mr->smr_str.bv_val == NULL ) {
507 if ( ldap_matchingrule2bv( &mr->smr_mrule, &mr->smr_str ) == NULL ) {
512 Debug( LDAP_DEBUG_TRACE, "Merging mr [%lu] %s\n",
513 mr->smr_str.bv_len, mr->smr_str.bv_val );
516 nval.bv_val = mr->smr_oid;
517 nval.bv_len = strlen(mr->smr_oid);
518 if( attr_merge_one( e, ad_matchingRules, &mr->smr_str, &nval ) ) {