Ames Andreas (MPA/DF) wrote:
I've stumbled over some code in Zope 2.7.0 that seems to suggest that input streams are meant to be seekable. In an extension I wrote for ZServer, i.e. AJPServer, I throw an exception when this is tried and I'm quite sure the call to seek wasn't there in 2.6.x. I found the call to seek in ZPublisher.HTTPRequest.py, line 128, in method "retry".
Does this mean that only seekable streams are allowed in ZPublisher (i.e. not stdin) or is this a bug?
When the object database raises a ConflictError, ZPublisher makes 3 attmpts (by default) to "retry" the request (in most cases, the request can succeed when retried).
Is there a reason why the AJP protocol won't allow you to "rewind" to the beginning of the request stream? I don't think that the publisher does any other seek than to the start of the stream.
Perhaps you need to derive an AJPRequest from HTTPRequest, and arrange not to need the 'stidn' stream during a retry; another possibility would be to submit a patch which allowed the retry mechanism to work without re-parsing the request stream (basically, the patch would need to clone the cgi.FieldRequest set from the original request into the one used for the retry).
Tres. -- =============================================================== Tres Seaver [EMAIL PROTECTED] Zope Corporation "Zope Dealers" http://www.zope.com
Zope-Dev maillist - [EMAIL PROTECTED]
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce