[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: commit: ldap/servers/slapd slap.h controls.c



> I think this change should be backed out.  The specification
> here is flawed here for a number of reasons.  First, because
> completely ignoring such a pagedresult control can lead to
> masking of other errors, such as protocol errors due to
> attachment of two pagedresult controls to the request.

I think the specification is clear in this point; if it's flawed that's
somthing I can't tell.  We can provide a simple mech for testing that it's
not given twice...

> Second, because the control should not be ignored when
> pagedresults == sizelimit because this won't produce
> a sizeLimitExceeded error.

OK.

> Also, pagedresults of zero
> (0) should not be ignored.

this means the client wants to abandon; I hope I didn't
modify this!  I don't really see the point of starting
a search with a page size of 0 (or even with a sizelimit
of 0, if possible; actually, -z 0 means no limits).

>
> The specification should have just noted that when the
> page size is positive but less than sizeLimit, the

s/less/more/ ?

> sizeLimit will exceeded before generation of a page.
> In such cases, the server is to sizeLimitExceeded should
> be returned (without a pagedResultsControl).
>
>  From the client's perspective, this is as if the request
> control had been ignored.  However, the server should
> do other control processing.

... agree: the effect is essentially the same to the client;
if the point is only to check that the control is unique,
I still think my change is fine because it doesn't cause extra
work in the server.

>
> Also note that RFC is unclear as to whether the response
> control should be returned when errors are detected.
> In general, I think the response control should only
> be attached when the search is success-ful (including
> when size=0).

I agree on the weakness of the rfc here; there is no mention
of whether to return the control response in case of failure.
It simply states that in such case both server and client
should implicitly agree that the paged results is over, so
I guess no control response and the appropriate error in the
searchResultDone should suffice.

In any case, I think my essential point was to introduce
the possibility of ignoring a control, in case slapd deems
it appropriate, and make the pr a bit rfc-compliant, since
I happened to read it again :)

I think I should strenghten the check for control duplication
(I have a couple of ideas for that).

Ando.

-- 
Pierangelo Masarati
mailto:pierangelo.masarati@sys-net.it


    SysNet - via Dossi,8 27100 Pavia Tel: +390382573859 Fax: +390382476497