int dnExtractRdn( struct berval *dn, struct berval *rdn ) { LDAPRDN *tmpRDN; const char *p; int rc; assert( dn ); assert( rdn ); if( dn->bv_len == 0 ) { return LDAP_OTHER; } rc = ldap_bv2rdn( dn, &tmpRDN, (char **)&p, LDAP_DN_FORMAT_LDAP ); if ( rc != LDAP_SUCCESS ) { return rc; } rc = ldap_rdn2bv( tmpRDN, rdn, LDAP_DN_FORMAT_LDAPV3 | LDAP_DN_PRETTY ); ldap_rdnfree( tmpRDN ); if ( rc != LDAP_SUCCESS ) { return rc; } return LDAP_SUCCESS; }
static int slapi_int_rdn_implode( Slapi_RDN *rdn ) { struct berval bv; int rc; if ( rdn->rdn == NULL ) { return LDAP_SUCCESS; } rc = ldap_rdn2bv( rdn->rdn, &bv, LDAP_DN_FORMAT_LDAPV3 | LDAP_DN_PRETTY ); if ( rc != LDAP_SUCCESS ) { return rc; } slapi_ch_free_string( &rdn->bv.bv_val ); rdn->bv = bv; return 0; }