diff options
author | Noriko Hosoi <nhosoi@redhat.com> | 2009-08-04 11:54:34 -0700 |
---|---|---|
committer | Noriko Hosoi <nhosoi@redhat.com> | 2009-08-04 11:54:34 -0700 |
commit | 0565e8c39894b059191cfaff2176f758141ffe3b (patch) | |
tree | c654289fb6104ee5c1ef10f1373da9b9897f0a41 /ldap/servers/slapd/back-ldbm/init.c | |
parent | cbed8a2780469cdbf298c30e7f10da01c4356d03 (diff) | |
download | ds-0565e8c39894b059191cfaff2176f758141ffe3b.tar.gz ds-0565e8c39894b059191cfaff2176f758141ffe3b.tar.xz ds-0565e8c39894b059191cfaff2176f758141ffe3b.zip |
513916 Server doesn't ignore paged control, if page size and server's estimate of total no of entries are same
The code processing search results were returning the PAGE END without
knowing there are more entries to return or not. To learn it, introduced
"read ahead" one entry when it comes to the PAGE END. If there are more
entries, the code undo the read ahead, which prompts for the next page
on the client side. If there is no more entries, it returns the status
SEARCH END instead of PAGE END.
In addition to the read ahead implementation to fix the bug 513916,
* supporting Simple Paged Results for chaining backend is added.
* fixed a bug in idl_new_fetch (idl_new.c) -- idlistscanlimit was not
checked when the cursor comes to the end of an index file.
Diffstat (limited to 'ldap/servers/slapd/back-ldbm/init.c')
-rw-r--r-- | ldap/servers/slapd/back-ldbm/init.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/ldap/servers/slapd/back-ldbm/init.c b/ldap/servers/slapd/back-ldbm/init.c index be9c114d..76e6d192 100644 --- a/ldap/servers/slapd/back-ldbm/init.c +++ b/ldap/servers/slapd/back-ldbm/init.c @@ -184,6 +184,8 @@ ldbm_back_init( Slapi_PBlock *pb ) (void *) ldbm_back_next_search_entry ); rc |= slapi_pblock_set( pb, SLAPI_PLUGIN_DB_NEXT_SEARCH_ENTRY_EXT_FN, (void *) ldbm_back_next_search_entry_ext ); + rc |= slapi_pblock_set( pb, SLAPI_PLUGIN_DB_PREV_SEARCH_RESULTS_FN, + (void *) ldbm_back_prev_search_results ); rc |= slapi_pblock_set( pb, SLAPI_PLUGIN_DB_ENTRY_RELEASE_FN, (void *) ldbm_back_entry_release ); rc |= slapi_pblock_set( pb, SLAPI_PLUGIN_DB_SEARCH_RESULTS_RELEASE_FN, |