Please review: [389 Project] #260: 389 DS does not support multiple paging controls on a single connection
by Noriko Hosoi
1. "Connection" object holds the paged results related values.
Now they are packaged in one PagedResults object. And the
array of PagedResults with its length and used count are
placed in PagedResultList, which is stashed in Connection
2. The pagedresults APIs are extended to take the index of Paged-
Results array. The index is set to the cookie in the Paged-
Results control before returning it to the client. When a
client sends a paged results request, the cookie field in the
first request control is supposed to be empty. The result
control is returned with the search results. The result
control stores the index in the cookie and the client sets
it to the following request control to get the next pages.
When the paged search is done, empty cookie is returned.
3. The array grows if multiple simple paged results requests
over a single connection come in. The array does not get
released every time, but it is when the server is shutdown.
4. Simple paged results connection is timed out when it exeeds
the timelimit. If multiple requests are served, it won't
be disconnected until all the requests are timed out.