]> git.sur5r.net Git - openldap/commitdiff
ITS#2924, fix transition to subsequent subordinates
authorHoward Chu <hyc@openldap.org>
Fri, 16 Jan 2004 19:07:03 +0000 (19:07 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 16 Jan 2004 19:07:03 +0000 (19:07 +0000)
servers/slapd/backglue.c

index bd0a4338f23ec7a412c75ae73ca3d6a5b1f084f1..c9c29a186069bc4af4cf17fca11db938314fa7ff 100644 (file)
@@ -441,7 +441,8 @@ glue_tool_entry_first (
                }
 
        }
-       if (!glueBack || glueBack->be_entry_open (glueBack, glueMode) != 0)
+       if (!glueBack || !glueBack->be_entry_open || !glueBack->be_entry_first ||
+               glueBack->be_entry_open (glueBack, glueMode) != 0)
                return NOID;
 
        return glueBack->be_entry_first (glueBack);
@@ -462,7 +463,7 @@ glue_tool_entry_next (
        rc = glueBack->be_entry_next (glueBack);
 
        /* If we ran out of entries in one database, move on to the next */
-       if (rc == NOID) {
+       while (rc == NOID) {
                glueBack->be_entry_close (glueBack);
                for (i=0; i<gi->nodes; i++) {
                        if (gi->n[i].be == glueBack)
@@ -470,7 +471,7 @@ glue_tool_entry_next (
                }
                if (i == 0) {
                        glueBack = NULL;
-                       rc = NOID;
+                       break;
                } else {
                        glueBack = gi->n[i-1].be;
                        rc = glue_tool_entry_first (b0);