]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/backglue.c
switch to openldap-data directory
[openldap] / servers / slapd / backglue.c
index 59dc6ecec49494b4fd1e5e06c5e0e861fdc63195..61bdf574d53f9ff4fe0e3abf80dabb9f8ec6255c 100644 (file)
@@ -36,7 +36,7 @@
 
 typedef struct gluenode {
        BackendDB *be;
-       char *pdn;
+       struct berval pdn;
 } gluenode;
 
 typedef struct glueinfo {
@@ -352,7 +352,7 @@ glue_back_search (
                        }
                        be = gi->n[i].be;
                        if (scope == LDAP_SCOPE_ONELEVEL && 
-                               !strcmp (gi->n[i].pdn, ndn->bv_val)) {
+                               dn_match(&gi->n[i].pdn, ndn)) {
                                rc = be->be_search (be, conn, op,
                                        be->be_suffix[0], be->be_nsuffix[0],
                                        LDAP_SCOPE_BASE, deref,
@@ -884,8 +884,7 @@ glue_sub_init( )
                                        gi->nodes * sizeof(gluenode));
                        }
                        gi->n[gi->nodes].be = be;
-                       gi->n[gi->nodes].pdn = dn_parent(NULL,
-                               be->be_nsuffix[0]->bv_val);
+                       dnParent( be->be_nsuffix[0], &gi->n[gi->nodes].pdn ); 
                        gi->nodes++;
                }
                if (gi) {
@@ -893,8 +892,7 @@ glue_sub_init( )
                        gi = (glueinfo *)ch_realloc(gi,
                                sizeof(glueinfo) + gi->nodes * sizeof(gluenode));
                        gi->n[gi->nodes].be = gi->be;
-                       gi->n[gi->nodes].pdn = dn_parent(NULL,
-                               b1->be_nsuffix[0]->bv_val);
+                       dnParent( b1->be_nsuffix[0], &gi->n[gi->nodes].pdn );
                        gi->nodes++;
                        b1->be_private = gi;
                        b1->bd_info = bi;