]> git.sur5r.net Git - openldap/commitdiff
Add slapi_x_be_select() (to be replaced with slapi_be_select() when
authorLuke Howard <lukeh@openldap.org>
Mon, 8 Aug 2005 11:01:39 +0000 (11:01 +0000)
committerLuke Howard <lukeh@openldap.org>
Mon, 8 Aug 2005 11:01:39 +0000 (11:01 +0000)
we support Slapi_DN API)

servers/slapd/slapi/proto-slapi.h
servers/slapd/slapi/slapi_utils.c

index 0d1e8ee6c9636913bdd6a39546dd980e789e710f..cd967ed20263effebc07b6e6c80059886474118e 100644 (file)
@@ -31,6 +31,7 @@ LDAP_SLAPI_F (Modifications *) slapi_int_ldapmods2modifications LDAP_P(( LDAPMod
 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 ));
index f2ac0cf24b3db170e46e1939af21af88caf0610c..98951cef6696403bc563a1678fe5ec04679619bd 100644 (file)
@@ -3479,6 +3479,24 @@ const char *slapi_x_be_get_updatedn( Slapi_Backend *be )
        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)