Subject: RE: Unrecognized critical control & referrals

From: "Salter, Thomas A" <[email-masked]>
Date: Wed, 14 Jun 2000 10:29:22 -0400

The server can only do that if it knows something about the control.  If the
server can somehow tell that it would have returned a referral even if it
supported the control, then it can go ahead and return the referral.

For instance, you could build a server that recognizes the sort control, but
does not support it.  It could safely return a referral (or even a single
result), but would need to return unsupportedCriticalExtension if the search
returned two or more entries.

In the general case the server can't guess about nature of the control.  For
all it knows, the control has some obscure meaning such as "under no
circumstances return a referral for this request".

I think the key words in the RFC are correct: "... does not recognize ...".
This allows a server to recognize, but not support, a control.

 > -----Original Message-----
 > From: Kurt D. Zeilenga [mailto:[email-masked]]
 > Sent: Wednesday, June 14, 2000 9:17 AM
 > To: [email-masked]
 > Subject: Unrecognized critical control & referrals
 > 
 > 
 > RFC 2251, 4.1.2:
 >    If the server does not recognize the control type and the 
 > criticality
 >    field is TRUE, the server MUST NOT perform the operation, and MUST
 >    instead return the resultCode unsupportedCriticalExtension.
 > 
 > There seems to me the need for an exception to the MUST to allow
 > a server to return a referral instead of 
 > unsupportedCriticalExtension.
 > If the request would, if the control was not marked critical,
 > have returned a referral result, shouldn't that same referral be
 > returned when the control is critical?
 > 
 > Kurt
 >  
 >

---

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Wed, 14 Jun 2000 08:49:20 -0700

I've always assumed that a server which recongizes a control
supports that control.  Note that the RFC2251 never uses
the term "supported" in the context of controls though it
does state to return the unsupportedCriticalExtension
(unavailableCriticalExtension [12]) resultCode.

Anyways, I agree that the server should return
unsupportedCriticalExtension (unavailableCriticalExtension [12])
in this case.

	Kurt