diff options
author | Noriko Hosoi <nhosoi@redhat.com> | 2010-08-04 15:32:22 -0700 |
---|---|---|
committer | Noriko Hosoi <nhosoi@redhat.com> | 2010-08-04 15:32:22 -0700 |
commit | 115857a2d111b7b6d72ddadd7c8e231f802fc249 (patch) | |
tree | 0dd7afb2905fd01dd9940787376c85b253a44bfc /ldap/servers/slapd/pblock.c | |
parent | 26240315c1ef8fcb71798feae171f394293e953f (diff) | |
download | ds-115857a2d111b7b6d72ddadd7c8e231f802fc249.tar.gz ds-115857a2d111b7b6d72ddadd7c8e231f802fc249.tar.xz ds-115857a2d111b7b6d72ddadd7c8e231f802fc249.zip |
513166 - Simple Paged result doesn't provide the server's estimate
of the total number of entries
https://bugzilla.redhat.com/show_bug.cgi?id=513166
Description: By definition, the first integer of the response
control is for the estimated search result set size. This fix
sets the estimated result set size.
* controlType = LDAP_CONTROL_PAGEDRESULTS;
* criticality = n/a;
* controlValue:
* realSearchControlValue ::= SEQUENCE {
* size INTEGER (0..maxInt),
* -- result set size estimate from server
* cookie OCTET STRING
Diffstat (limited to 'ldap/servers/slapd/pblock.c')
-rw-r--r-- | ldap/servers/slapd/pblock.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ldap/servers/slapd/pblock.c b/ldap/servers/slapd/pblock.c index dd126976..06a2947e 100644 --- a/ldap/servers/slapd/pblock.c +++ b/ldap/servers/slapd/pblock.c @@ -1522,6 +1522,13 @@ slapi_pblock_get( Slapi_PBlock *pblock, int arg, void *value ) (*(void **)value) = pblock->pb_op->o_results.r.r_search.search_result_set; } break; + /* estimated search result set size */ + case SLAPI_SEARCH_RESULT_SET_SIZE_ESTIMATE: + if(pblock->pb_op!=NULL) + { + (*(int *)value) = pblock->pb_op->o_results.r.r_search.estimate; + } + break; /* Entry returned from iterating over results set */ case SLAPI_SEARCH_RESULT_ENTRY: if(pblock->pb_op!=NULL) @@ -2891,6 +2898,13 @@ slapi_pblock_set( Slapi_PBlock *pblock, int arg, void *value ) pblock->pb_op->o_results.r.r_search.search_result_set = (void *)value; } break; + /* estimated search result set size */ + case SLAPI_SEARCH_RESULT_SET_SIZE_ESTIMATE: + if(pblock->pb_op!=NULL) + { + pblock->pb_op->o_results.r.r_search.estimate = *(int *)value; + } + break; /* Search result - entry returned from iterating over result set */ case SLAPI_SEARCH_RESULT_ENTRY: if(pblock->pb_op!=NULL) |