summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/pblock.c
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@redhat.com>2010-08-04 15:32:22 -0700
committerNoriko Hosoi <nhosoi@redhat.com>2010-08-04 15:32:22 -0700
commit115857a2d111b7b6d72ddadd7c8e231f802fc249 (patch)
tree0dd7afb2905fd01dd9940787376c85b253a44bfc /ldap/servers/slapd/pblock.c
parent26240315c1ef8fcb71798feae171f394293e953f (diff)
downloadds-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.c14
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)