LDAP_SLAPI_F (int) slapi_int_count_controls LDAP_P(( LDAPControl **ctrls ));
LDAP_SLAPI_F (char **) slapi_get_supported_extended_ops LDAP_P((void));
LDAP_SLAPI_F (int) slapi_int_access_allowed LDAP_P((Operation *op, Entry *entry, AttributeDescription *desc, struct berval *val, slap_access_t access, AccessControlState *state ));
+LDAP_SLAPI_F (Slapi_Backend *) slapi_x_be_select LDAP_P((const char *dn));
/* slapi_ops.c */
LDAP_SLAPI_F (int) slapi_int_response LDAP_P(( Slapi_Operation *op, SlapReply *rs ));
return be->be_update_ndn.bv_val;
}
+Slapi_Backend *slapi_x_be_select(const char *dn)
+{
+ struct berval bdn;
+ struct berval ndn;
+ Slapi_Backend *be;
+
+ bdn.bv_val = (char *)dn;
+ bdn.bv_len = (dn != NULL) ? strlen(dn) : 0;
+
+ if ( dnNormalize( 0, NULL, NULL, &bdn, &ndn, NULL ) != LDAP_SUCCESS )
+ return NULL;
+
+ be = select_backend( &ndn, 0, 0 );
+ slapi_ch_free_string( &ndn.bv_val );
+
+ return be;
+}
+
#if 0
void
slapi_operation_set_flag(Slapi_Operation *op, unsigned long flag)