* note: the incoming dn is assumed to be normalized/prettyfied,
* so that escaped rdn/ava separators are in '\'+hexpair form
*/
-int
+void
dnParent(
struct berval *dn,
struct berval *pdn )
/* one-level dn */
if ( p == NULL ) {
*pdn = slap_empty_bv;
- return LDAP_SUCCESS;
+ return;
}
assert( DN_SEPARATOR( p[ 0 ] ) );
pdn->bv_val = p;
pdn->bv_len = dn->bv_len - (p - dn->bv_val);
- return LDAP_SUCCESS;
+ return;
}
-#ifdef SLAP_DN_MIGRATION
-/*
- * these routines are provided for migration purposes only!
- * dn_normalize is deprecated in favor of dnNormalize
- * strcmp/strcasecmp for DNs is deprecated in favor of dnMatch
- *
- * other routines are likewise deprecated but may not yet have
- * replacement functions.
- */
-
-/*
- * dn_normalize - put dn into a canonical form suitable for storing
- * in a hash database. this involves normalizing the case as well as
- * the format. the dn is normalized in place as well as returned if valid.
- * Deprecated in favor of dnNormalize()
- */
-char *
-dn_normalize( char *dn )
-{
- struct berval val;
- struct berval *normalized = NULL;
- int rc;
-
- if ( dn == NULL || dn[0] == '\0' ) {
- return dn;
- }
-
- val.bv_val = dn;
- val.bv_len = strlen( dn );
-
- rc = dnNormalize( NULL, &val, &normalized );
- if ( rc != LDAP_SUCCESS ) {
- return NULL;
- }
-
- if ( val.bv_len < normalized->bv_len ) {
- ber_bvfree( normalized );
- return NULL;
- }
-
- AC_MEMCPY( dn, normalized->bv_val, normalized->bv_len + 1 );
- ber_bvfree( normalized );
-
- return dn;
-}
-
-/*
- * dn_parent - return the dn's parent, in-place
- * FIXME: should be replaced by dnParent()
- */
-char *
-dn_parent(
- Backend *be,
- const char *dn )
-{
- struct berval bv, pdn;
-
- if ( dn == NULL ) {
- return NULL;
- }
-
- while ( dn[ 0 ] != '\0' && ASCII_SPACE( dn[ 0 ] ) ) {
- dn++;
- }
-
- if ( dn[ 0 ] == '\0' ) {
- return NULL;
- }
-
- bv.bv_val = (char *)dn;
- bv.bv_len = strlen(bv.bv_val);
- if ( be != NULL && be_issuffix( be, &bv ) ) {
- return NULL;
- }
-
- if ( dnParent( &bv, &pdn ) != LDAP_SUCCESS ) {
- return NULL;
- }
-
- return pdn.bv_val;
-}
-#endif /* SLAP_DN_MIGRATION */
-
-
int
dnExtractRdn(
struct berval *dn,
Backend *be,
struct berval *dn_in )
{
- int rc;
const char *p;
assert( dn_in );