static int mr_passthru_initialize( void ) { static slap_mrule_defs_rec mr_def = { "( 1.2.840.113556.1.4.1941 " "NAME 'inChain' " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 " "X-PASSTHRU '' " ")", SLAP_MR_HIDE | SLAP_MR_EXT, NULL, NULL, dnNormalize, failMatch, NULL, NULL, NULL }; int rc; /* equality rule */ rc = register_matching_rule( &mr_def ); if ( rc != 0 ) { return rc; } return rc; }
static int aci_init( void ) { /* OpenLDAP eXperimental Syntax */ static slap_syntax_defs_rec aci_syntax_def = { "( 1.3.6.1.4.1.4203.666.2.1 DESC 'OpenLDAP Experimental ACI' )", SLAP_SYNTAX_HIDE, NULL, OpenLDAPaciValidate, OpenLDAPaciPretty }; static slap_mrule_defs_rec aci_mr_def = { "( 1.3.6.1.4.1.4203.666.4.2 NAME 'OpenLDAPaciMatch' " "SYNTAX 1.3.6.1.4.1.4203.666.2.1 )", SLAP_MR_HIDE | SLAP_MR_EQUALITY, NULL, NULL, OpenLDAPaciNormalize, OpenLDAPaciMatch, NULL, NULL, NULL }; static struct { char *name; char *desc; slap_mask_t flags; AttributeDescription **ad; } aci_at = { "OpenLDAPaci", "( 1.3.6.1.4.1.4203.666.1.5 " "NAME 'OpenLDAPaci' " "DESC 'OpenLDAP access control information (experimental)' " "EQUALITY OpenLDAPaciMatch " "SYNTAX 1.3.6.1.4.1.4203.666.2.1 " "USAGE directoryOperation )", SLAP_AT_HIDE, &slap_ad_aci }; int rc; /* ACI syntax */ rc = register_syntax( &aci_syntax_def ); if ( rc != 0 ) { return rc; } /* ACI equality rule */ rc = register_matching_rule( &aci_mr_def ); if ( rc != 0 ) { return rc; } /* ACI attribute */ rc = register_at( aci_at.desc, aci_at.ad, 0 ); if ( rc != LDAP_SUCCESS ) { Debug( LDAP_DEBUG_ANY, "aci_init: at_register failed\n" ); return rc; } /* install flags */ (*aci_at.ad)->ad_type->sat_flags |= aci_at.flags; return rc; }