]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldap/suffixmassage.c
Free IDL_CACHE locks
[openldap] / servers / slapd / back-ldap / suffixmassage.c
index 4cd1a13b4cc011d0240fd885ecdf1bae2198e0b4..53193a2025577b8fbeae0f5d8d450302e0a6c236 100644 (file)
@@ -47,7 +47,7 @@ ldap_back_dn_massage(
 {
        int rc = 0;
 
-       switch (rewrite_session( dc->rw, dc->ctx, dn->bv_val, dc->conn, 
+       switch (rewrite_session( dc->rwmap->rwm_rw, dc->ctx, (dn->bv_len ? dn->bv_val : ""), dc->conn, 
                                &res->bv_val )) {
        case REWRITE_REGEXEC_OK:
                if ( res->bv_val != NULL ) {
@@ -107,7 +107,7 @@ ldap_back_dn_massage(
                res->bv_len = 0;
                return 0;
        }
-       if ( dc->li == NULL || dc->li->suffix_massage == NULL ) {
+       if ( dc->rwmap == NULL || dc->rwmap->rwm_suffix_massage == NULL ) {
                *res = *dn;
                return 0;
        }
@@ -121,14 +121,14 @@ ldap_back_dn_massage(
                /* DN from remote server may be in arbitrary form.
                 * Pretty it so we can parse reliably.
                 */
-               dnPretty2( NULL, dn, &pretty );
+               dnPretty2( NULL, dn, &pretty, NULL );
                if (pretty.bv_val) dn = &pretty;
        }
 
        for ( i = 0;
-               dc->li->suffix_massage[i].bv_val != NULL;
+               dc->rwmap->rwm_suffix_massage[i].bv_val != NULL;
                i += 4 ) {
-               int aliasLength = dc->li->suffix_massage[i+src].bv_len;
+               int aliasLength = dc->rwmap->rwm_suffix_massage[i+src].bv_len;
                int diff = dn->bv_len - aliasLength;
 
                if ( diff < 0 ) {
@@ -140,15 +140,15 @@ ldap_back_dn_massage(
                        /* At a DN Separator */
                }
 
-               if ( !strcmp( dc->li->suffix_massage[i+src].bv_val, &dn->bv_val[diff] ) ) {
-                       res->bv_len = diff + dc->li->suffix_massage[i+dst].bv_len;
+               if ( !strcmp( dc->rwmap->rwm_suffix_massage[i+src].bv_val, &dn->bv_val[diff] ) ) {
+                       res->bv_len = diff + dc->rwmap->rwm_suffix_massage[i+dst].bv_len;
                        res->bv_val = ch_malloc( res->bv_len + 1 );
                        strncpy( res->bv_val, dn->bv_val, diff );
-                       strcpy( &res->bv_val[diff], dc->li->suffix_massage[i+dst].bv_val );
+                       strcpy( &res->bv_val[diff], dc->rwmap->rwm_suffix_massage[i+dst].bv_val );
 #ifdef NEW_LOGGING
-                                       LDAP_LOG ( BACK_LDAP, ARGS, 
-                                               "ldap_back_dn_massage: converted \"%s\" to \"%s\"\n",
-                                               dn->bv_val, res->bv_val, 0 );
+                       LDAP_LOG ( BACK_LDAP, ARGS, 
+                               "ldap_back_dn_massage: converted \"%s\" to \"%s\"\n",
+                               dn->bv_val, res->bv_val, 0 );
 #else
                        Debug( LDAP_DEBUG_ARGS,
                                "ldap_back_dn_massage:"